1

我一直在努力:

http://site.com/file.php?x=foo

重定向到:

http://newsite.com/something/completely/different/

使用以下内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^file\.php?x=foo$ http://newsite.com/something/completely/different/ [R=301,NC,L]

</IfModule>

但它什么也没做(只是加载相同的旧页面,就好像我从未接触过 htaccess 一样)。

有什么我想念的吗?

非常感谢您的帮助!

4

1 回答 1

1

?末尾的使.php最后一个p可选(所以.phpx=foo.phx=foo将匹配)。它实际上并未被视为比赛中的角色。尝试转义?\?

编辑

对于那些想知道解决方案是什么的人:

查询字符串参数不会传递给RewriteRule匹配的字符串。所以你必须先创建一个RewriteCondQUERY_STRING然后匹配没有参数的url。例如:

RewriteCond %{QUERY_STRING} x=foo
RewriteRule ^file\.php$ http://newsite.com/something/completely/different/ [R=301,NC,L]

可能/希望有更好的方法来做到这一点(因为这RewriteCond会级联到其他规则,这很烦人)。

于 2012-04-30T01:56:17.943 回答