PHP Hosting'de React Router
Bildiğiniz gibi, derlemeden sonra React projesi, herhangi bir hosting'e yüklenebilen ve hemen çalışan sıradan bir statik dosya grubudur.
Ancak, React Router ile ilgili bir sorun var. Router çalışırken, tarayıcıdaki sayfa URL'ini değiştirir. Bu sırada sayfa gerçekten yeniden yüklenmez, sadece URL JavaScript ile değiştirilir.
Hosting'e yüklenen sitede,
Router çalışacaktır. Ancak, ana sayfa
haricindeki herhangi bir sayfadayken
sayfa yeniden yüklendiğinde, 404
hatası alınır.
Bu mantıklıdır, çünkü tarayıcı
belirtilen URL'de bir dosya arayacaktır,
tıpkı statik sitelerde olduğu gibi.
Oysa uygulamamızda böyle bir sayfa
olmayacak, çünkü biz sadece onları
taklit ediyoruz ve aslında tüm
uygulamamız index.html üzerinde çalışıyor.
Sorunu çözmek için, gerçekten
var olan dosyalara işaret etmeyen
tüm URL'lerin index.html'e
yönlendirilmesi gerekir. Bu,
hosting'de çalışan web sunucusu
aracılığıyla yapılır.
Sanal hosting'ler PHP üzerinde çalışır.
Genellikle sunucu olarak Apache kullanılır.
Apache'de, yönlendirmeyi ayarlamak
için kullanılabilen özel bir
.htaccess dosyası mevcuttur.
Bunun için, web sitenizin kök dizinine
aşağıdaki içeriğe sahip bir
.htaccess dosyası yerleştirmeniz gerekir:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]
React Router ile bir proje yapın.
Projeyi hosting'e yükleyin. Varsayılan olarak yönlendirmenin çalışmadığından emin olun.
Sorunu .htaccess dosyası
kullanarak düzeltin.