欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

nginx location 博客分类: nginx nginx location 

程序员文章站 2024-02-23 11:17:55
...


All remaining directives with conventional strings, longest match first. If this match used the ^~ prefix, searching stops.

If #3 yielded a match, that result is used. Else the match from #2 is used.

所有剩下的常规字符串,最长的匹配。如果这个匹配使用^〜前缀,搜索停止。

如果第3条规则产生匹配的话,结果被使用。否则,如同从第2条规则被使用。

---------- 翻译成人话 ----------

先找所有的location

找到=匹配, 就不再找了, 执行

上面的没有, 继续找
找到^~, 就不再找了, 执行

上面的没有, 继续找
找到正则, 按 1.最大匹配, 2. 物理顺序 定优先

上面的没有, 继续找
找到普通匹配, 按 1.最大匹配, 2. 物理顺序 定优先


语法 匹配规则
普通匹配(遵循最大前缀匹配规则,优先度比正则低)
= 精确(严格)匹配, 优先度最高,后续不再匹配正则
^~ 非正则匹配(依然遵循最大前缀匹配规则),后续不再匹配正则
~ 表示区分大小写的正则匹配
~* 表示不区分大小写的正则匹配
/ 通用匹配,任何请求都会匹配到(本质上等同于语法空)
 


---------- 翻译成人话 ----------
第一优先级
=, ^~

第二优先级
正则, 同样正则下, 最大匹配和物理顺序

剩下
普通, 最大匹配和物理顺序




  ##### location 匹配测试 #####
  普通location, 这个(空)不能与 ^~一样, 因为同属普通匹配
  #location  /a/c {
      return 555;  }
  #正则location
  location ~ /a/c {
      return 999;
  }
  #正则location
  location ~* /a/c {
      return 888;
  }
  #普通location, 第二优先级, 与 (空)匹配 不能一样, 因为同属普通匹配
  #location ^~ /a/c {
  #    return 777;
  #}
  #精确location, 最大优先级, 可以与普通匹配一样
  location = /a/c {
      return 666;
  }







相关标签: nginx location