【问题标题】:Nginx rewrite params issueNginx 重写参数问题
【发布时间】: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


【解决方案1】:

你可以试试下面的规则:

rewrite ^\/\/data/app/(.*)  /data/app/$1  last;

【讨论】:

    猜你喜欢
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多