Nginx 位置匹配

Posted

技术标签:

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

有什么区别:

 location = /abc 

 locaton ~ /abc 

【问题讨论】:

第二个看起来更酷:P(我认为第一个匹配确切位置,第二个使用常规 exp。但由于我不确定我不将其作为答案发布) 【参考方案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。

以上是关于Nginx 位置匹配的主要内容,如果未能解决你的问题,请参考以下文章

使用Nginx位置匹配器同步Django url

nginx 常见正则匹配符号表示

Nginx Rewrite 与 Location 的网页匹配

Nginx Rewrite 与 Location 的网页匹配

nginx 常见正则匹配符号表示

nginx 常见正则匹配符号表示