dotwc62080 2014-04-08 16:14
浏览 55
已采纳

使用.htaccess将带有查询字符串的一个页面重定向到另一个页面

having issues redirecting from an existing page to another page. I have the URL:

http://www.thedomain.com/webpage-themission.php?wp=The%20Mission

and I want to redirect it to:

http://www.thedomain.com/webpage.php?wp=The%20Mission

I have tried:

RewriteEngine On
RewriteRule ^/webpage-themission.php?wp=The%20Mission$ http://thedomain.com/webpage.php?wp=The%20Mission$1 [L,R=301]

and many other combinations but no such luck, any help would be greatly appreciated!

  • 写回答

2条回答 默认 最新

  • duanke6057 2014-04-08 16:28
    关注

    You should not include the query string in the redirect rule, as it is not evaluated at all.

    Try this:

    RewriteEngine On
    RewriteRule ^/?webpage-themission\.php$ http://thedomain.com/webpage.php [L,R=301,QSA]
    

    A few notes:

    • It is important to note the QSA flag that is specified. This will have the effect of appending the query string wp=The%20Mission to the redirected URL.
    • I also escaped the . in the matching rule so that it does not behave as a wildcard and allow a redirect on something like /webpage-themissionXphp
    • I put the ? after the initial backslash, as typically in directory context (i.e. .htaccess) the forward slash is not compared, meaning that the rule would need to be ^webpage.... Putting /? makes the rule work in both the directory context and the server context (i.e. httpd.conf).
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部