URL-адреса перенаправления (с конкретными параметрами GET) - PullRequest
4 голосов
/ 25 февраля 2009

У меня есть старая ссылка на опрос, которая была заменена другой ссылкой, поэтому я хочу, чтобы кто-нибудь пытался получить доступ к URL:

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

Перенаправляется на:

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

Могу ли я сделать это в конфигурации Apache или в файле htaccess?

Я попробовал следующее правило в разделе Redirect моего файла httpd.conf:

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

Но это не работает. Я подозреваю, что параметры GET не используются при обработке правила.

Является ли мой единственный способ взломать мой код для перенаправления на конкретный съемочный идентификатор?


Следуя предложению использовать правила перезаписи, я попробовал следующее в моем файле .htaccess:

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

Но это не работает. У меня действительно есть движок перезаписи, потому что у меня есть еще одно правило перезаписи.

Ответы [ 4 ]

8 голосов
/ 25 февраля 2009

Попробуйте это в файле .htaccess:

RewriteEngine on
RewriteCond %{QUERY_STRING} (^|.*&)surveyID=1525(&.*|$)
RewriteRule ^survey/view_survey\.php$ /survey/view_survey.php?%1surveyID=1607%2 [L,R=301]
1 голос
/ 25 февраля 2009
RewriteEngine On
RewriteCond %{QUERY_STRING} ^surveyID=1525$
RewriteRule ^/survey/view_survey\.php /survey/view_survey.php?surveyID=1607 [R=301]
0 голосов
/ 22 марта 2012

Возможно, есть дубликат этого вопроса, и он будет решен, если это решение не работает для вас:

Сбой Apache Redirect 301 при использовании параметров GET, таких как? Blah =

0 голосов
/ 25 февраля 2009

Проверьте часть QSA mod_rewrite.

Получает манипуляции со строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...