React Router PHP-isännöinnissä
Kuten jo tiedät, rakennusvaiheen jälkeen React-projekti on tavallista statiikkaa, jonka voi ladata mihin tahansa isännöintipalveluun, ja se toimii siellä välittömästi.
React Routerin kanssa on kuitenkin ongelma. Asia on niin, että Router työnskennellessään vaihtaa selaimen sivujen URL-osoitteita. Tällöin sivua ei todellisuudessa ladata uudelleen, vain URL-osoite muuttuu JavaScriptin keinoin.
Router toimii isännöidylle sivustolle.
Mutta jos ollaan jollakin
sivuston sivulla, paitsi etusivulla,
ja lataa sivu uudelleen, niin tulee 404
-virhe.
Ja se on loogista, sillä selain etsii
tiedostoa määritetystä URL-osoitteesta,
kuten staattiset sivustot yleensä toimivat.
Mutta meidän sovelluksessamme sellaista sivua
ei ole, koska vain simuloimme
niitä, ja itse asiassa koko
sovelluksemme toimii index.html:ssä.
Ongelman ratkaisemiseksi on tehtävä niin,
että kaikki URL-osoitteet, jotka eivät johda todella
olemassa oleviin tiedostoihin, ohjataan
index.html:ään. Tämä tehdään
isännöintipalvelussa toimivan web-palvelimen
keinoin.
Virtuaaliset isännöintipalvelut toimivat PHP:llä.
Yleensä palvelimena käytetään Apachea.
Siellä on saatavilla erityinen tiedosto .htaccess,
jonka avulla voidaan asettaa
uudelleenohjaus.
Tätä varten sinun tulee sijoittaa sivustosi juureen
tiedosto .htaccess
seuraavalla sisällöllä:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Tee projekti React Routerilla.
Lataa se isännöintipalveluun. Varmista, että oletusarvoisesti reititys ei toimi.
Korjaa ongelma .htaccess-tiedoston
avulla.