React Router PHP hostingda
Artıq bildiyiniz kimi, qurulmadan sonra React layihəsi adi statik fayllardan ibarətdir, hansı ki, istənilən hostingə yüklənə bilər və dərhal orada işləyəcək.
Lakin, React Router ilə bağlı bir problem var. Məsələ ondadır ki, Router işləyərkən brauzerdə səhifələrin URL-ni dəyişir. Eyni zamanda, səhifə həqiqətən yenidən yüklənmir, yalnız URL JavaScript vasitəsilə dəyişir.
Hostingə yüklənmiş saytda
Router işləyəcək. Amma, əgər siz
əsas səhifədən başqa hər hansı bir səhifədə olsanız
və onu yenidən yükləsəniz, onda 404
xətası alınacaq.
Və bu məntiqlidir, çünki brauzer
göstərilən URL üzrə faylı axtaracaq,
necə ki, adətən statik saytlar işləyir.
Bizim tətbiqimizdə isə belə bir səhifə
olmayacaq, çünki biz onları yalnız təqlid edirik,
əslində isə bütün tətbiqimiz
index.html üzərində işləyir.
Problemi həll etmək üçün elə etmək lazımdır ki,
real mövcud olan fayllara aparmayan bütün URL-lər
index.html-ə yönləndirilsin. Bu,
hostingdə işləyən web-serverin vasitələri ilə edilir.
Virtual hostinglər PHP-də işləyir.
Adətən server kimi Apache istifadə olunur.
Onda xüsusi .htaccess faylı əlçatandır,
onun köməyi ilə yönləndirməni təyin etmək olar.
Bunun üçün siz saytınızın kökündə
aşağıdakı məzmunu olan .htaccess
faylını yerləşdirməlisiniz:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
React Router olan bir layihə hazırlayın.
Onu hostingə yükləyin. Əmin olun ki, standart olaraq routing işləmir.
Problemi .htaccess faylı ilə həll edin.