React Router на PHP хостингу
Као што већ знате, након изградње React пројекат представља обичну статику, коју можете отпремити на било који хостинг, и она ће тамо одмах радити.
Међутим, постоји проблем са React Router-ом. Ствар је у томе што Router током рада мења URL страница у претраживачу. При томе се страница стварно не поново учитава, већ се URL мења помоћу JavaScript-а.
На сајту, који је постављен на хостинг,
Router ће радити. Али, ако се, налазећи се
на некој страници сајта, осим главне,
поново учита, појавиће се 404
грешка.
И то је логично, јер ће претраживач
тражити фајл по задатом URL-у,
као што то обично функционишу статични сајтови.
А у нашој апликацији таква страница
неће постојати, јер ми само симулирамо
њихово постојање, а заправо цела наша
апликација ради на index.html.
За решавање проблема потребно је да се осигура да
сви URL-ови, који не воде на стварно
постојеће фајлове, буду преусмерени
на index.html. То се ради
помоћу web-сервера, који ради
на хостингу.
Виртуелни хостинзи раде на PHP-у.
Углавном се као сервер користи Apache.
У њему је доступан посебан фајл .htaccess,
којим се може подесити
преусмеравање.
За то вам је у корену вашег сајта
потребно да поставите фајл .htaccess
са следећим садржајем:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Направите пројекат са React Router-ом.
Отпремите га на хостинг. Уверите се да подразумевано усмеравање (роутинг) не ради.
Решите проблем помоћу
фајла .htaccess.