. Htaccess 301 çalışmıyor yönlendirmek

2 Cevap php

I have a basic CMS in PHP/MySQL where content managers can create pages to the system for public viewing. Each page is then available at an url such as http://www.example.com/pages.php?pid=123 Now, I want to redirect requests to http://www.example.com/pages.php?pid=123 to http://www.example.com/pages.php?pid=456.

Ben zaten db pid=123 sayfa kaldırıldı ettik ama bazı bir sayfaya erişmeye çalıştığında çünkü cm kod site hala bir 202 döndürür. Ben yönlendirme çalışması, yani yapmak için .htaccess bir 301 yönlendirmesi kullanabilirsiniz düşündüm:

redirect 301 pages.php?pid=123 http://www.example.com/pages.php?pid=456

ancak bu pid = 123 Sayfa getirilemedi çalışırken Apache hala 202 dönmek, çalışmıyor. Ayrıca, ben mod_rewrite kullanarak denedim ama çalışmıyor:

RewriteRule ^pages.php?pid=123$ pages.php?pid=456 [R=301,L]

Herhangi bir fikir ne 301 yönlendirme nasıl düzeltebilirim yanlış olabilir ve?

2 Cevap

Kullanarak (muhtemelen nerede yönlendirmek için ne hakkında daha fazla biliyor ki) PHP yönlendirme yapabilirsiniz header().

O ? düzenli ifadeler tarafından kullanılan özel bir karakter, bu nedenle regex maçlar pages.phppid=123 ve pages.phppid=123 unutmayınız.

O zaman bile, ben (?pid=123 kısmı dahil) sorgu dizesi RewriteRule tarafından ele URL kullanılan sanmıyorum, bu yüzden gibi bir şey kullanmak gerekir:

RewriteCond %{QUERY_STRING} ^pid=123$
RewriteRule ^pages.php$ pages.php?pid=456 [R=301,L]

Bu olduğu gibi çalışmak gerekir, ama size bazı fikirler verecektir.