Как перенаправить на подкаталог в react с помощью react router?

#php #html #reactjs #wordpress #react-router

#php #HTML #reactjs #wordpress #react-маршрутизатор

Вопрос:

У меня установлено приложение react в корневом домене, предположим domain.com и я установил WordPress в подкаталог с именем domain.com/blog . Если я добавлю пустой маршрут, подобный <Route exact path="/blog" /> , я получу пустую страницу. Есть ли способ получить доступ к файлам .php или .html в подкаталоге за пределами компонентов react?

Пожалуйста, обратитесь к приведенному ниже коду маршрутизации

     <BrowserRouter>
          <Switch>
            <Switch>
              <Route exact path="/" render={(props) => <Index {...props} />} />
    
              {/*route added since /blog redirects to / because of 404 condition at the bottom */}
              {/* <Route exact path="/blog" /> */}
    
              {/*404 redirection for other URLs */}
              <Redirect to="/" />
              <Redirect from="/" to="/" />
            </Switch>
          </Switch>
        </BrowserRouter>
  

Из-за добавленных ниже перенаправлений, если я не указываю маршрут для /blog, он перенаправляется на корневой URL ‘/’ (это условие 404 страница не найдена).

Ответ №1:

Маршрут предназначен только для внутренней маршрутизации react. Если вы хотите перенаправить URL-адрес какой-либо другой платформы, вам нужно использовать привязку (тег)

Вы можете прочитать больше здесь это

 <a href="https://example.com/blog">Go to Blog</a>
  

Обновить:

 <BrowserRouter>
      <Switch>
        <Switch>
          <Route exact path="/" render={(props) => <Index {...props} />} />

          <Route path="*" render={props => <NotFound />}
        </Switch>
      </Switch>
    </BrowserRouter>
  

Комментарии:

1. Я понимаю, что вы сказали, но я должен указать маршрут для URL блога, поскольку я добавил перенаправление 404, чтобы все остальные маршруты были перенаправлены на компонент 404. Есть ли способ получить маршрут 404 и направить пользовательский маршрут в подкаталог

2. Маршрут требуется только для внутренней маршрутизации react. Вам не нужно добавлять какой-либо маршрут для другого веб-URL. Для другого URL вам нужно добавить тег, а не ссылку. Ссылка будет использоваться только для внутреннего URL react.

3. Я понял! но я использую маршрут перенаправления 404 <Redirect to="/" /> , из-за этого, если я напишу domain.com/blog он перенаправляется на домашнюю страницу. Это прекратится, только если я предоставлю маршрут специально для blog. Есть ли какой-либо другой способ перенаправить его на domain, а также добиться 404 перенаправлений?

4. пожалуйста, поделитесь своим кодом. И другой способ, которым это могло бы быть. Откройте блог в новой вкладке, и ваш сайт react перенаправит на главную страницу.