Перенаправление URL-адресов (с определенными параметрами GET)

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

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

Для перенаправления на:

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

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

Я пробовал следующее правило в разделе «Перенаправление» моего файла 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 

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

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

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

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

Он выполняет GET-манипуляцию.

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

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