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:

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

Naredite projekt z React Router.

Задание 2

Naložite ga na gostovanje. Prepričajte se, da privzeto usmerjanje ne deluje.

Задание 3

Odpravite težavo s pomočjo datoteke .htaccess.