React Router sur un hébergement PHP

Comme vous le savez déjà, après la construction, un projet React représente des fichiers statiques ordinaires, qui peuvent être téléchargés sur n'importe quel hébergement, et il fonctionnera immédiatement là-bas.

Il y a, cependant, un problème avec React Router. Le fait est que Router, pendant son fonctionnement, modifie l'URL des pages dans le navigateur. En même temps, la page ne se recharge pas réellement, seul l'URL change via JavaScript.

Sur un site déposé sur un hébergement, Router fonctionnera. Mais, si vous vous trouvez sur une page du site, autre que la page d'accueil, et que vous la rechargez, une erreur 404 apparaîtra.

Et c'est logique, car le navigateur cherchera un fichier à l'URL spécifiée, comme fonctionnent habituellement les sites statiques. Or, dans notre application, cette page n'existera pas, car nous ne faisons que simuler ces pages, alors qu'en réalité toute notre application fonctionne sur index.html.

Pour résoudre le problème, il faut faire en sorte que toutes les URL qui ne mènent pas à des fichiers réellement existants soient redirigées vers index.html. Cela se fait via les moyens du serveur web fonctionnant sur l'hébergement.

Les hébergements virtuels fonctionnent avec PHP. En général, le serveur utilisé est Apache. Un fichier spécial .htaccess y est disponible, avec lequel on peut définir une redirection.

Pour cela, vous devez placer dans la racine de votre site le fichier .htaccess avec le contenu suivant :

.htaccessRewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Задание 1

Créez un projet avec React Router.

Задание 2

Téléchargez-le sur l'hébergement. Assurez-vous que par défaut le routage ne fonctionne pas.

Задание 3

Corrigez le problème à l'aide du fichier .htaccess.