【问题标题】:Nginx double slashNginx 双斜杠
【发布时间】:2015-01-25 16:53:39
【问题描述】:
(?i)^/(dima|oleg)/([-a-z0-9]+)[.]+([-a-z0-9]+)[.]+(by|kz|ru)(((?<!/)/[-a-z0-9._\~\%\!\$\&\'\(\)\*\+\,\;\=\:\@]*)*)(\.php)((\?)(.*)?)?$

我使用这个正则表达式来重写 url。它用双斜杠抑制网址。您可以在 regex101.com 上对其进行测试。工作正常。但是,当我在 access.log 中向我的 NGINX 服务器提供带有双斜杠的 url 时,我可以看到刚刚提供的 url,因为它带有双斜杠,并且我得到了请求的资源(例如 .js 文件)。但由于 url 中的双斜杠,我预计会出现 404 错误。问题是:为什么会发生这种情况?

【问题讨论】:

  • Web 服务器内置了“忽略”这种双斜杠的自动机制(Apache 的反应方式相同)。
  • 是的,nginx 有一个选项 merge_slashes

标签: regex nginx


【解决方案1】:

Nginx 有一个选项 merge_slashes on|off。这个选项是自我描述的。

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多