当URL源包含“?”时重定向永久

时间:2013-12-19 14:54:24

标签: apache mod-rewrite redirect rewrite permanent

我正在寻找有关Redirect永久物的一些帮助。

我想做一个重定向,如:

http://www.mydomain.com/site/index.php?code=_frhttp://www.mydomain.com/home

当我为任何网址尝试类似的内容时,它正在运行:

RedirectPermanent /site/index.php URLDEST

但如果我想这样做,它就行不通了......

RedirectPermanent /site/index.php?code=_fr URLDEST

我也尝试过这样的事情:

RewriteRule ^/site/index.php?code=_fr$ URLDEST [R=301]

但它也不起作用。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要一个条件来检查重写中的查询字符串的值:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^code=_fr$
    RewriteRule ^/site/index.php$ /home [R]

当我测试它时,这是有效的,而不是/ home,我进行了重定向到谷歌,当我点击/site/index.php?code=_fr时它就在那里。其他任何东西和规则都不匹配。您确定要重定向的页面确实存在吗?你有什么设置URLDEST?如果你得到的是404,那么重定向到的页面会丢失,或者某些其他配置错误。我还建议使用Firebug或Charles来查看请求的响应头。如果你看到30倍,那么规则就是匹配而且有效。