React Router na PHP hosting
Kao što već znate, nakon build-a React projekat predstavlja običnu statiku koju možete upload-ovati na bilo koji hosting, i ona će tamo odmah raditi.
Međutim, postoji problem sa React Router-om. Stvar je u tome što Router tokom rada menja URL stranica u pretraživaču. Pritom se stranica realno ne ponovo učitava, već se samo URL menja putem JavaScript-a.
U sajtu postavljenom na hosting,
Router će raditi. Ali, ako se nalazite
na bilo kojoj stranici sajta, osim na početnoj,
i ponovo učitate stranicu, pojaviće se 404
greška.
I to je logično, jer će pretraživač
tražiti fajl na zadatom URL-u,
kako to obično funkcioniše kod statičkih sajtova.
A u našoj aplikaciji takve stranice
neće biti, budući da mi samo oponašamo
ih, a zapravo cela naša
aplikacija radi na index.html.
Za rešenje problema potrebno je učiniti da
svi URL-ovi, koji ne vode ka stvarno
postojećim fajlovima, budu preusmereni
na index.html. Ovo se radi
pomoću web servera koji radi
na hostingu.
Virtuelni hostinzi rade na PHP-u.
Uglavnom se kao server koristi Apache.
U njemu je dostupan specijalan fajl .htaccess,
pomoću kojeg možete podesiti
preusmeravanje.
Za ovo vam je u korenu vašeg sajta
potrebno da postavite fajl .htaccess
sa sledećim sadržajem:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Napravite projekat sa React Router-om.
Upload-ujte ga na hosting. Uverite se da podrazumevano rutiranje ne radi.
Rešite problem pomoću
fajla .htaccess.