(Özel GET parametreleri ile) URL'leri yeniden yönlendirme

3 Cevap php

Ben başka bir bağlantı almıştır bu eski anket linki var, bu temelde herkes URL erişmeye çalışırken istiyorum:

http://mywebsite.com/survey/view_survey.php?surveyID=1

: Yönlendirilmesini

http://mywebsite.com/survey/view_survey.php?surveyID=2

Ben Apache yapılandırma veya htaccess dosyasında bunu yapabilir mi?

Benim httpd.conf dosyasının yönlendirme bölümünde aşağıdaki kural çalıştı:

Redirect 301 /survey/view_survey.php?surveyID=1 http://mywebsite.com/survey/view_survey.php?surveyID=2

Ama çalışmıyor. Ben kuralı işlerken GET parametreleri kullanılmaz şüphelenen.

Belirli bir surveyID yönlendirmek için kodumu kesmek için benim tek seçenek mi?


. Rewrite kurallarını kullanarak öneriyi takiben, ben benim htaccess dosyasında aşağıdaki çalıştı:

RewriteRule ^survey/view_survey\.php\?surveyID=1525$ /survey/view_survey.php?sur
veyID=1607

Ama çalışmıyor. Şu anda çalıştıran başka bir yazma kuralı var, çünkü motor rewrite yukarı ve çalışan var.

3 Cevap

. Bir htaccess dosyasında bu deneyin:

RewriteEngine on
RewriteCond %{QUERY_STRING} (^|.*&)surveyID=1525(&.*|$)
RewriteRule ^survey/view_survey\.php$ /survey/view_survey.php?%1surveyID=1607%2 [L,R=301]

Mod_rewrite QSA kısmını atın.

Bu dize manipülasyon GET yapar.

Bu soruya olası bir yinelenen olabilir ve bu çözüm sizin için işe yaramazsa o çözüldü:

Apache Redirect 301 fails when using GET parameters, such as ?blah=