React Router em hospedagem PHP
Como você já sabe, após a construção, um projeto React se torna conteúdo estático comum, que pode ser carregado em qualquer hospedagem, e funcionará imediatamente.
No entanto, há um problema com o React Router. A questão é que o Router, durante seu funcionamento, altera o URL das páginas no navegador. Enquanto isso, a página não é realmente recarregada, apenas o URL é alterado por meio de JavaScript.
Em um site publicado na hospedagem,
o Router funcionará. Mas, se você estiver
em uma página do site, diferente da principal,
e recarregá-la, será retornado um erro 404.
E isso é lógico, pois o navegador irá
procurar por um arquivo no URL especificado,
como os sites estáticos normalmente funcionam.
E em nossa aplicação, essa página não existirá,
pois estamos apenas simulando-a,
e na verdade, todo o nosso aplicativo
funciona a partir do index.html.
Para resolver o problema, é necessário fazer com que
todos os URLs que não levam a arquivos
realmente existentes sejam redirecionados
para o index.html. Isso é feito
por meio do servidor web que opera
na hospedagem.
Hospedagens virtuais funcionam com PHP.
Geralmente, o Apache é usado como servidor.
Nele, está disponível um arquivo especial .htaccess,
com o qual você pode definir
o redirecionamento.
Para isso, você precisa colocar no diretório raiz do seu site
um arquivo .htaccess
com o seguinte conteúdo:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Crie um projeto com React Router.
Faça o upload para a hospedagem. Verifique que, por padrão, o roteamento não funciona.
Corrija o problema usando
o arquivo .htaccess.