我想只重定向此网址 http://domain.com/?eID=dd_googlesitemap
我的规则是
RewriteRule http://domain.com/?eID=dd_googlesitemap http://domain.com/test.html [R=301,L]
但它不起作用。我不懂。任何想法都错了吗?
。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。
答案 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的末尾会停止添加查询字符串。