【问题标题】:Nginx location matchesNginx 位置匹配
【发布时间】:2011-07-11 11:32:56
【问题描述】:

有什么区别:

 location = /abc {}

 locaton ~ /abc {}

【问题讨论】:

  • 第二个看起来更酷:P(我认为第一个匹配确切位置,第二个使用常规 exp。但由于我不确定我不将其作为答案发布)

标签: nginx nginx-location


【解决方案1】:

location = /abc {} 匹配精确的 uri /abc

location ~ /abc 是 uri 上的正则表达式匹配,表示任何包含 /abc 的 uri, 您可能想要:location ~ ^/abc/abc 开头的 uri 而是

【讨论】:

  • 您意识到您不需要正则表达式来匹配开头。这是 nginx 默认操作:location /abc { ... }
  • 对@dalore 的评论说“我秒”。 /abc 正是 ~ ^/abc 所做的(至少对于我当前的 nginx 版本,centos 上的 1.10.2)。也许自从写了这个答案后它就改变了……进一步阅读here
  • 速记,前面的说法不准确。 location /abc 只会匹配以/abc/abc/ 开头的路由。这意味着它将匹配/abc/def,但不匹配/abcdef。正则表达式将匹配两者,因为它匹配字符串,而不是路由..
  • 另外,location /abc 只会在没有其他位置与正则表达式匹配时匹配。所以location ~ ^/abc 优先于location /abc,即使它稍后定义:keycdn.com/support/nginx-location-directive
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-11
  • 2020-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
相关资源
最近更新 更多