React Router na PHP gostovanju
Kot že veste, po gradnji project React predstavlja navadno statiko, ki jo je mogoče naložiti na katero koli gostovanje, in bo tam takoj delovala.
Obstaja pa težava z React Router. Stvar je v tem, da Router med delovanjem spreminja URL strani v brskalniku. Pri tem se stran dejansko ne ponovno naloži, ampak se samo URL spremeni s pomočjo JavaScript.
Na spletnem mestu, objavljenem na gostovanju,
bo Router deloval. Toda, če med obiskom
katere koli strani spletnega mesta, razen glavne,
to stran ponovno naložite, se bo pojavila napaka 404.
In to je logično, saj bo brskalnik
iskal datoteko na določenem URL-ju,
kot ponavadi delujejo statična spletna mesta.
V naši aplikaciji takšne strani
ne bo, saj jo le posnemamo,
in pravzaprav celotna aplikacija
teče na index.html.
Za rešitev težave je potrebno narediti tako,
da se vsi URL-ji, ki ne vodijo do dejansko
obstoječih datotek, preusmerijo
na index.html. To se naredi
s pomočjo spletnega strežnika, ki dela
na gostovanju.
Virtualna gostovanja delujejo na PHP.
Ponavadi se kot strežnik uporablja Apache.
V njem je na voljo posebna datoteka .htaccess,
s katero je mogoče nastaviti
preusmeritev.
Za to morate v korenu vašega spletnega mesta
postaviti datoteko .htaccess
z naslednjo vsebino:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Naredite projekt z React Router.
Naložite ga na gostovanje. Prepričajte se, da privzeto usmerjanje ne deluje.
Odpravite težavo s pomočjo
datoteke .htaccess.