简单的Modrewrite规则

时间:2013-07-24 15:36:38

标签: mod-rewrite get

我想只重定向此网址 http://domain.com/?eID=dd_googlesitemap

http://domain.com/test.html

我的规则是

RewriteRule http://domain.com/?eID=dd_googlesitemap http://domain.com/test.html [R=301,L]

但它不起作用。我不懂。任何想法都错了吗?

。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

1 个答案:

答案 0 :(得分:1)

您遇到的问题是查询字符串和域未与RewriteRule匹配。相反,您需要使用RewriteCond

将这些条件指定为规则之前的条件
RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteCond %{QUERY_STRING} ^eID=dd_googlesitemap$
RewriteRule ^$ http://domain.com/test.html? [R=301,L]

如果你没有在RewriteCond上指定任何[flags],那么它们是AND'd,所以这里所请求的URL的域名部分(HTTP_HOST)必须是“域名” .com“......”www.domain.com“将无法匹配。此外,如果查询字符串中存在任何其他选项,则它将不匹配。

最后,我们将一个完全空的请求(没有其他路径等)重写到新URL。将?添加到URL的末尾会停止添加查询字符串。