10 of 10 menu

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.

hykkdaazuzl