React Router на PHP хостингу
Як вы ўжо ведаеце, пасля зборкі праект React уяўляе сабой звычайную статыку, якую можна загрузіць на любы хостинг, і яна там адразу будзе працаваць.
Ёсць, аднак, праблема з React Router. Справа ў тым, што Router пры працы мяняе URL старонак у браўзэры. Пры гэтым рэальна старонка не перазагружаецца, а толькі мяняецца URL сродкамі JavaScript.
У сайце, выкладзеным на хостинг,
Router будзе працаваць. Але, калі знаходзячысь
на якой-небудзь старонцы сайта, акрамя галоўнай,
перазагрузіць яе, то вываліцца 404
памылка.
І гэта лагічна, бо браўзер будзе
шукаць файл па зададзеным URL,
як звычайна працуюць статычныя сайты.
А ў нашым дадатку такой старонкі
не будзе, бо мы толькі імітуем
іх, а на самой справе ўсё наша
дадатак працуе на index.html.
Для вырашэння праблемы трэба зрабіць так,
каб усе URL, якія не вядуць на рэальна
існуючыя файлы, перанакіроўваліся
на index.html. Гэта робіцца
сродкамі вэб-сервера, які працуе
на хостингу.
Віртуальныя хостингі працуюць на PHP.
Як правіла ў якасці сервера выкарыстоўваецца Apache.
У ім даступны спецыяльны файл .htaccess,
з дапамогай якога можна задаць
перанакіраванне.
Для гэтага вам у карані вашага сайта
трэба размясціць файл .htaccess
з наступным зместам:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
Зрабіце праект з React Router.
Загрузіце яго на хостинг. Пераканайцеся, што па змаўчанні routing не працуе.
Выпраўце праблему з дапамогай
файла .htaccess.