301在Apache中使用查询字符串和域名重定向

时间:2010-03-03 19:20:50

标签: apache http-status-code-301

我正在尝试编写一个301重定向,它将同时查看主机名和查询字符串参数。因此,如果URL是两者中的任何一个。

然后我希望它重定向到相应的页面:

否则,如果主机不是 example.com ,如

然后我不希望它重定向。

这是我到目前为止所做的,但似乎没有用。如果有人能在这个问题上提供一些帮助,那将是非常感激的。我已经尝试找到类似的答案,但我找不到一个。

RewriteEngine on

RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteCond %{query_string} p=11&b=3
RewriteRule (.*) http://store.example.com/testpage.html [R=301,L]

1 个答案:

答案 0 :(得分:1)

您需要为替换网址指定一个空查询:

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteCond %{QUERY_STRING} p=11&b=3
RewriteRule .* http://store.example.com/testpage.html? [R=301,L]

否则原始请求的查询会自动附加到新URL。