10 of 10 menu

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.

nluzplencs