#javascript #reactjs #react-router
Вопрос:
Я размещаю свой проект React на Apache, и мне пришлось перенаправлять запросы с помощью файла .htaccess. Он находится в React, но также использует ванильный javascript и HTML-сайты.
В производстве (запуск npm), вот как это работало:
Если бы сайт получил определенные токены от Firebase, страница была бы перенаправлена на сайт следующим образом:
{HaveToken ? (
<BrowserRouter>
<Route exact path="/" render={() => {window.location.href="tv/indextv.html?m=" auth.currentUser.email "amp;p=" othermail "amp;t=" othertoken}} />
</BrowserRouter>
):null}
Если бы это было не так, оператор return функции просто продолжал бы выполнять другие действия.
На сайте html/javascript одним нажатием кнопки он будет перенаправлен на этот же App.js проект, с этой строкой:
window.location.href = 'http://localhost/messages';
Это просто запустило бы App.js, и это сработало идеально, его больше не перенаправят, потому что это уже не просто «/».
Теперь, когда я построил его и добавил на сервер Apache, он работает по-другому. Для /сообщений я получаю ошибку 404, для… ну, по очевидным причинам.
Мой вопрос в том, как я могу решить эту проблему? Я попытался сделать это, добавив что-то вроде localhost?m=m
, чтобы местоположение было таким же, но URL-адрес немного отличается. К сожалению, маршрут все еще думает, что это тот же самый путь. Есть ли какой-либо способ, которым я могу заставить маршрут отображать только другой сайт, если они не попали сюда, нажав кнопку на другом сайте? Или я могу передать что-то с другого сайта, что может заставить маршрут игнорировать тот же путь?