301重定向将查询添加到目标URL的末尾

时间:2012-01-19 19:36:11

标签: .htaccess redirect http-status-code-301

我似乎无法找到适用于我的特定情况的解决方案,尽管许多其他人也有类似的问题。当我尝试为已经重写的URL创建301重定向时,重定向会起作用,但会将查询字符串附加到目标URL的末尾,该URL引用要重定向的URL。例如:

Redirect 301 /dir1/dir2/dir3/ http://www.example.com/dir1/dir2/dir5/

结果

http://www.example.com/dir1/dir2/dir5/?&a=/dir1/dir2/dir3/

1 个答案:

答案 0 :(得分:1)

我不相信上面的Redirect规则会附加QS参数,因此很可能是.htaccess中的另一条规则。

您还需要在第一次重定向或后续重定向之前验证何时添加其他QS参数。你可以使用HTTP调试代理,例如Fiddler

或者,您可以在任何其他规则之前使用下面等效规则放置在.htaccess的顶部,并查看无关的QS参数是否仍在那里。

RewriteRule ^dir1/dir2/dir3/$ http://www.example.com/dir1/dir2/dir5/ [NC,R=301,L]

如果它们仍然存在,则.htaccess中的其他内容匹配http://www.example.com/dir1/dir2/dir5/并添加QS值

如果可以帮助,则发布.htaccess的相关部分或整个内容