React Router на PHP хостинг

Както вече знаете, след като сглобите проекта React, той представлява обикновени статични файлове, които могат да бъдат качени на всеки хостинг, и веднага ще работят там.

Обаче, има проблем с React Router. Работата е там, че Router по време на работа променя URL на страниците в браузъра. При това реално страницата не се презарежда, а само URL се променя чрез JavaScript.

В сайт, качен на хостинг, Router ще работи. Но, ако се намирате на някоя страница от сайта, различна от главната, и я презаредите, ще получите 404 грешка.

И това е логично, защото браузърът ще търси файл по зададения URL, както обикновено работят статичните сайтове. А в нашето приложение такава страница няма да има, тъй като ние само симулираме такива, а всъщност цялото ни приложение работи на index.html.

За решаване на проблема трябва да се направи така, че всички URL, които не сочат към реално съществуващи файлове, да се пренасочват към index.html. Това се прави чрез средствата на уеб сървъра, който работи на хостинга.

Виртуалните хостинги работят на PHP. Обикновено като сървър се използва Apache. В него е достъпен специален файл .htaccess, с чиято помощ може да се зададе пренасочване.

За това вие в корена на вашия сайт трябва да поставите файл .htaccess със следното съдържание:

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

Направете проект с React Router.

Задание 2

Качете го на хостинг. Уверете се, че по подразбиране рутингът не работи.

Задание 3

Коригирайте проблема с помощта на файла .htaccess.