我注意到 RedirectMatch 指令在重定向过程中保留了查询字符串。也就是说,如果http://www.mydomain.com/someurl?some=query匹配规则,那么它将被重定向到 /whatever/other/url?some=query 并在新 url 中保留查询字符串。
我如何告诉它不要保留查询字符串并在没有任何查询字符串的情况下仅重定向到 /whatever/other/url?
我注意到 RedirectMatch 指令在重定向过程中保留了查询字符串。也就是说,如果http://www.mydomain.com/someurl?some=query匹配规则,那么它将被重定向到 /whatever/other/url?some=query 并在新 url 中保留查询字符串。
我如何告诉它不要保留查询字符串并在没有任何查询字符串的情况下仅重定向到 /whatever/other/url?
?
规则末尾是明确删除现有查询字符串的唯一方法。从文档中:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
没有关于如何避免追加查询字符串的文档,尽管该
QSA
选项的存在表明 Apache 的行为可能有点类似于nginx
— 尾随?
将确保不会追加以前的查询字符串。顺便说一句,如果这在 Apache 中不起作用,我诚挚地邀请您尝试
nginx
。除了具有出色的性能外,它还具有出色的文档和易于配置的特性,并且附加一个?
简单地使旧字符串消失,并且不会在生成的重定向中产生空问号。所以,它基本上只在 nginx 中工作,整个行为甚至被正式记录下来,所以你不必跳过任何环节。http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite