Nginxlocation匹配规则本⽂测试的 nginx 版本为 1.14.2
优先级从⾼到低排列
语法匹配规则
=精确匹配
^~⾮正则匹配
~, ~*正则匹配,~ 区分⼤⼩写,~* 不区分⼤⼩写
空普通匹配,匹配规则等价于⾮正则匹配,但它的优先级⽐正则低
/通⽤匹配,当上⾯的语法都没有匹配时,就会⾛通⽤匹配
例⼦
1. 精确匹配
location = /a {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '精确匹配';
}
只会匹配 /a。/a/, /ab 都不会匹配
2. ⾮正则匹配
location ^~ /a {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '精确匹配';
}
能匹配以 /a 开头的路径, 如:/a/, /abc, /a/b/c
3. 正则匹配
location ~ "\d{4}$" {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '正则匹配';
}
能匹配以4个数字结尾的路径,如 /2021, /a/2021
4. 普通匹配
location /a {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '精确匹配';
}
匹配⽅式等价于例⼦中第2点的⾮正则匹配,但优先级要⽐正则低。
普通匹配不能与⾮正则匹配使⽤同⼀个路径,否则 nginx 解析配置⽂件时,会出现语法错误,如下:location ^~ /a {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '精确匹配';
}
location /a {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '精确匹配';
}
正则匹配解析使⽤ nginx -t 测试语法,提⽰如下:
5. 通⽤匹配
location / {
add_header Content-Type "text/plain;charset=utf-8";
return 200 '通⽤匹配';
}
所有其他规则没有匹配到的路径,都会使⽤通⽤匹配

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。