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:

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

React Router ile bir proje yapın.

Задание 2

Projeyi hosting'e yükleyin. Varsayılan olarak yönlendirmenin çalışmadığından emin olun.

Задание 3

Sorunu .htaccess dosyası kullanarak düzeltin.