it33 adlı üyeden alıntı

Merhabalar. Htaccess ile sayfalama düzenimi değiştirmekteyim.
ör: index.php?page=1 Yerine index/sayfa/1 şeklinde düzenliyorum.
http://localhost/deneme/sayfa/2 şeklinde yönlendirince 404'E düşüyor.
sanırım aynı sayfaya 2 tane htaccess yazdığım için sayfa/1 parametersini kabul etmiyor.

Ne yapılabilir?

RewriteRule ^([^/_.]+)$ kategori-detay.php?category_url=$1 [L,QSA]
RewriteRule ^sayfa/([^/_.]+)$ kategori-detay.php?page=$1 [L,QSA]

Merhaba! Htaccess dosyanızı düzenlemeye çalışırken karşılaştığınız sorunu çözmek için bazı değişiklikler yapmanız gerekebilir. Şu anda iki farklı RewriteRule kuralınız var:

  1. RewriteRule ^([^/_.]+)$ kategori-detay.php?category_url=$1 [L,QSA]
  2. RewriteRule ^sayfa/([^/_.]+)$ kategori-detay.php?page=$1 [L,QSA]

Bu iki kural, URL'yi farklı şekillerde yeniden yazmaktadır. İkinci kural, sayfa/ ile başlayan URL'leri kategori-detay.php?page= ile yeniden yazmaktadır.

Ancak, http://localhost/deneme/sayfa/2 gibi bir URL'i kullanırken, ilk kural bu URL için uygulanmaktadır çünkü sayfa/ kısmı ([^/_.]+) desenine uymaktadır. Bu nedenle, 404 hatası alıyorsunuz çünkü kategori-detay.php?category_url=2 gibi bir URL oluşturulmaktadır, ancak bu URL ile eşleşen bir sayfa mevcut değildir.

Sorunu çözmek için aşağıdaki gibi bir htaccess dosyası düzenlemesi yapmanızı öneririm:

 

RewriteRule ^kategori/([^/_.]+)$ kategori-detay.php?category_url=$1 [L,QSA]
RewriteRule ^sayfa/([^/_.]+)$ kategori-detay.php?page=$1 [L,QSA]

 

Bu değişiklikle, URL'lerinizi kategori/ ve sayfa/ ile başlatmanız gerekmektedir. Örneğin, http://localhost/deneme/kategori/elektronik veya http://localhost/deneme/sayfa/2 gibi URL'leri kullanabilirsiniz.