服务器配置

location匹配正则规则和优先级

我的站长站 2023-10-29 人阅读

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 /)通用匹配

最新更新