Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
628 views
in Technique[技术] by (71.8m points)

apache - Redirecting URLs (with specific GET parameters)

I have this old survey link that is has been superseded by another link, so basically I want anyone trying to access the URL:

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

To be redirected to:

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

Can I do this in the Apache configuration or htaccess file?

I tried the following rule in the Redirect section of my httpd.conf file:

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

But it doesn't work. I am suspecting that the GET parameters are not used when processing the rule.

Is my only option to hack my code to redirect on a specific surveyID?


Following the suggestion of using the Rewrite rules, I tried the following in my .htaccess file:

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

But that doesn't work. I do have the rewrite engine up and running, because I have another rewrite rule currently running.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try this in a .htaccess file:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...