React Router en alojamiento PHP
Como ya sabes, después de la construcción el proyecto React representa estáticos ordinarios, que se pueden cargar en cualquier alojamiento, y funcionará inmediatamente allí.
Sin embargo, hay un problema con React Router. El hecho es que Router durante el trabajo cambia la URL de las páginas en el navegador. Al mismo tiempo, la página realmente no se recarga, solo cambia la URL mediante JavaScript.
En un sitio publicado en alojamiento,
Router funcionará. Pero, si estando
en alguna página del sitio, excepto la principal,
la recargas, aparecerá un 404
error.
Y esto es lógico, porque el navegador
buscará el archivo en la URL especificada,
como suelen funcionar los sitios estáticos.
Y en nuestra aplicación no existirá tal página,
ya que solo la estamos simulando,
y en realidad toda nuestra
aplicación funciona en index.html.
Para resolver el problema, es necesario hacer
que todas las URL que no conduzcan a archivos
realmente existentes sean redirigidas
a index.html. Esto se hace
mediante el servidor web que funciona
en el alojamiento.
Los alojamientos virtuales funcionan con PHP.
Generalmente, como servidor se utiliza Apache.
En él está disponible un archivo especial .htaccess,
con el cual se puede establecer
la redirección.
Para esto, en la raíz de tu sitio
necesitas colocar el archivo .htaccess
con el siguiente contenido:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Haz un proyecto con React Router.
Súbelo al alojamiento. Asegúrate de que, por defecto, el enrutamiento no funciona.
Corrige el problema mediante
el archivo .htaccess.