location正则表达式
| 字符 | 含义 |
|---|---|
| . | 匹配任意单个字符,可以是一个汉字 |
| ^ | 行首锚定, 用于模式的最左侧 |
| $ | 行尾锚定,用于模式的最右侧 |
| * | 匹配前面字符任意次(包括0次) |
| ? | 0或1次 |
| + | 1次或多次(1次或以上) |
| \ | 转义符 |
| \d | 只匹配数字 |
| {n} | 重复n次 |
| {n,} | 至少n次(n次货以上) |
| {n,m} | n到m次 |
| [ ] | 定义匹配字符的范围,只匹配一次 |
| [c] | 单个字符 |
| [a-z] | 匹配任意小写字母 |
| [a-zA-Z0-9] | 匹配任意字母和数字 |
| () | 表达式的开始和结束位置 |
| | | 或运算符a|b |
location匹配规则
| 规则表达式 | 规则含义 |
|---|---|
| = | 进行普通字符精确匹配。也就是完全匹配 |
| ^~ | 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他 location |
| ~ | 表示执行一个正则匹配,区分大小写 |
| ~* | 表示执行一个正则匹配,不区分大小写 |
| !~ | 表示执行一个正则匹配,区分大小写取反 |
| !~* | 表示执行一个正则匹配,不区分大小写取反 |
location优先级
等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
正则表达式类型(~和~*)的优先级次之。常规字符串匹配类型(不带任何修饰符的匹配),按前缀匹配。
通用匹配(/),如果没有其它匹配,任何请求都会匹配到。
(location = 完整路径) > (location ^~ 完整路径) > (location ~* 完整路径) >(location ~ 完整路径) > (location /)通用匹配
