Yeni başlattığım bir web sitesi için, mevcut olmayan tüm alt sayfaları yakalayan bir htaccess yönlendirmesi istiyorum /blog/
sadece işaret etmek için /blog/
ve bir 404 değil (yani /blog/old-page/
sadece yönlendirmek istiyorum /blog/
). Hala mevcut alt sayfalar (gibi ancak önemli /blog/new-page/
hiç yönlendirilen değil. Bunun kök htaccess dosyasında (alt klasörde değil) olması da en iyisidir. Her şeyi denediğimi hissediyorum ,ancak her bir eski alt sayfa için yönlendirme yapmadan bunun için bir çözüm bulamıyorum (>100 var)!
Umarım biri yardım edebilir.
Tüm eski sayfa url'leriniz formda olsaydı /blog/<old-page>/
ve daha önce fiziksel dizinlerle eşleştirildi (bundan DirectoryIndex
belge sunuldu) daha sonra kökünüzün üstündeki mod_rewrite kullanarak aşağıdaki gibi bir şey yapabilirsiniz .htaccess
dosya:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(blog/)[^/]+/$ /$1 [R=301,L]
$1
ikame dizesinde, ilk yakalama grubuna bir backreference bulunur. RewriteRule
örüntü, yani. "blog/". Bu sadece tekrarı kaydeder.
Kenara: az önce tekrar endişe ifade olarak yorumlar. SEO ve kullanıcılarla ilgili olarak, bu muhtemelen eksik sayfa(lar) ı açıklayan özel bir 404 yanıtından daha kötüdür. Arama motorları muhtemelen bunu (çok yönlü bir yönlendirme) yine de bir soft-404 olarak görecek ve kullanıcıların beklediklerinden farklı içerik gördüklerinde "kafası karışmış" (ve sıçrama) olma olasılığı daha yüksektir. Gerçekten "eski" den "yeni" ye (bire bir) 301 yönlendirmelerinin yerini tutamaz.