【发布时间】:2017-08-03 13:56:38
【问题描述】:
如何通过 nginx 中的重写规则从 URL http://myserver.com//data/app?foo1=bar1&foo2=bar2 中删除多个斜杠?
我正在尝试重写正则表达式,但未能成功使用完整的查询字符串,即重定向中的 foo1 和 foo2 参数。
【问题讨论】:
-
//来自哪里?rewrite指令在规范化 URI 上运行,不会看到嵌入的//或?或查询字符串。 -
我们的一位客户正在发送这样的请求。由于一些奇怪的原因,我们无法在客户端进行修复。所以我们正在尝试在 nginx 端修复它,以便该请求应该开始工作。 JFYI,我们已将 merge_slashes 设置为关闭,并且我们通过重写 url 手动规范化 url,因为 nginx 没有以某种方式规范化 url(默认 merge_slashes 开启)
-
$uri的值应该被规范化,但$request_uri的值不是。当人们使用$request_uri(例如proxy_pass)时,我看到了会破坏规范化的问题。
标签: nginx nginx-location