10 of 10 menu

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 :

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.html [QSA,L]

Créez un projet avec React Router.

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

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

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser