Htaccess ile gereksiz ? parametlerini silme

  • 25 Aralık 2013
  • 28 Okunma
  • Yorum Yok
  • 4 DK

Bugün benim başıma geldi. Olayı kısaca size anlatayım bir tane site var googleden index alırken şöyle index almış.

 .com/hasan-yuksektepe?sayfa=kimdir&kategori=1 

Yukarıdaki örnek teki gibi bir index almış şimdi zaten seo url var ama site içerisinde kullanılan a href etiketine yanlış link tanımlanmış yani böyle index sayısı bir sürü tek tek bu indexleri bulmak zaten başlı başına işkence bulup değiştirmek daha da bir işkence bunun kısa çözümü şimdilik aşağıda verdiğim htaccess komutları ile çözülebiliyor.

 RewriteCond %{THE_REQUEST} \ /([^\?\ ]*)\? RewriteRule ^ /%1? [L,R=301] 

Yukarıdaki kodu

 RewriteEngine On RewriteBase / 

Komutlarından hemen sonra koyuyoruz ve ? den gelen parametreleri temizleyebiliyoruz yani örnek vermek gerekirse.

 1- .com/hasan-yuksektepe?sayfa=kimdir&kategori=1 2- .com/hasan-yuksektepe 

1- kısım 2- kısıma 301 ile yani link taşındı header başlığı kodu ile yönleniyor böylece arama moturu bu linke tekrar geldiğinde yönlendirilen urldeki urlyi çekiyor indexlerde ? ifadesinden sonra gelen karakterler silinmiş oluyor ve bu sistemdeki bütün linkleri böyle yapıyor.

YALNIZ

Bu olay bir soruna yol açıyor o sorunsa seo url kullanılmayan bir sayfanız varsa o sayfanın çalışmamasını sağlıyor yani mesela admin paneline giriş yapmak istiyorsunuz.

 .com/admin/index.php?olay=giris 

Gibi bir url yapınız varsa bu kod sizi index.php ye geri yönlendiriyor. Bu yüzden admin paneline giriş yapamıyorsunuz. Bunu düzeltmenin bir yolu var tabi o da sistem izin veriyorsa. Site içerisindeki parametremiz

 .com/hasan-yuksektepe?sayfa=kimdir&kategori=1 

şeklindeydi hatırlarsanız yani bizim silinmesini istediğimiz kısım ?sayfa=kimdir kısmı ama admin panelinde giriş paremetreleri ?olay=giris yani parametreler birbirinden farklı kodumuzu şöyle düzenlersek olayı çözülmüş olacaktır

 RewriteCond %{THE_REQUEST} \ /([^\?\ ]*)\?sayfa= RewriteRule ^ /%1? [L,R=301] 

Yukarıdaki 1. satırdaki farklılığı görmüşsünüzdür ?sayfa= olarak ekledik yani urlde ?sayfa= var ise yönlendirecek yoksa yönlendirmicek. Bu sayede admin panelini kurtarmış olduk 🙂 ama sisteminize göre sorun çıkartabilir onu iyi bilmeniz gerekmekte.

HAYATI KODLA'YA ABONE OLUN!!
ETKİLEYİCİ BİR YORUM BIRAK

Htaccess ile gereksiz ? parametlerini silme İle Benzer Yazılar

"Htaccess ile gereksiz ? parametlerini silme" Yazısına uygun diğer makalerler