10 of 10 menu

React Router pe hosting PHP

După cum știți deja, după build proiectul React reprezintă conținut static obișnuit, care poate fi încărcat pe orice hosting, și va funcționa imediat acolo.

Există, totuși, o problemă cu React Router. Faptul este că Router-ul în timpul funcționării schimbă URL-ul paginilor în browser. În același timp, pagina nu se reîncarcă cu adevărat, ci doar se schimbă URL-ul prin mijloace JavaScript.

Într-un site, publicat pe hosting, Router-ul va funcționa. Dar, dacă vă aflați pe o pagină a site-ului, altă decât cea principală, și o reîncărcați, veți primi o eroare 404.

Și este logic, pentru că browser-ul va căuta un fișier la URL-ul specificat, așa cum funcționează de obicei site-urile statice. Și în aplicația noastră această pagină nu va exista, deoarece noi doar simulăm prezența ei, iar în realitate toată aplicația noastră rulează pe index.html.

Pentru a rezolva problema, trebuie făcut astfel încât toate URL-urile care nu duc către fișiere reale existente, să fie redirecționate către index.html. Acest lucru se face prin mijloacele serverului web, care funcționează pe hosting.

Hosting-urile virtuale funcționează pe PHP. De obicei, ca server este folosit Apache. În el este disponibil un fișier special .htaccess, cu ajutorul căruia puteți seta redirecționarea.

Pentru aceasta, în rădăcina site-ului dvs. trebuie să plasați fișierul .htaccess cu următorul conținut:

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

Realizați un proiect cu React Router.

Încărcați-l pe hosting. Asigurați-vă că implicit routing-ul nu funcționează.

Remediați problema cu ajutorul fișierului .htaccess.

uzcswruplhy