React Router PHP хостингте
Өздеріңіз білетіндей, жинақтан кейін React жобасы қарапайым статиканы ұсынады, оны кез келген хостингке жүктеп салуға болады, және ол сонда бірден жұмыс істейді.
Алайда, React Router мәселесі бар. Мәселе мынада, Router жұмыс істеп тұрғанда браузердегі беттердің URL мекенжайын өзгертеді. Бұл ретте бет шынында да қайта жүктелмейді, тек JavaScript көмегімен URL өзгереді.
Хостингке шығарылған сайтта
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 қолданатын жоба жасаңыз.
Оны хостингке жүктеңіз. Роутингтің әдепки бойынша жұмыс істемейтініне көз жеткізіңіз.
.htaccess файлын қолданып
мәселені шешіңіз.