0%

nginx location匹配规则

1
2
3
4
5
6
~     #正则匹配,区分大小写
~* #正则匹配,不区分大小写
空 #普通字符匹配,
^~ #普通字符匹配,
= #普通字符匹配, 精确匹配
@ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

匹配规则

  1. 精确匹配到=定义的loacation,使用这个location,停止搜索;
  2. 匹配最长普通字符,如果这个最长prefix string带有^~修饰符,使用这个location,停止搜索,否则往下
  3. 存储这个最长匹配;
  4. 然后匹配正则表达式(按配置顺序);
  5. 匹配到第一条正则表达式,使用该正则表达式的这个location,停止搜索;
  6. 没有匹配到正则表达式,使用第3步存储的prefix string的location。

参考链接