标签:命中 自己 正则表达式 表达式 前缀 配置 很多 响应状态 正则表达
目录
网上查了下location的优先级规则,但是很多资料都说的模棱两可,自己动手实地配置了下,下面总结如下。
1> 精确匹配
location = /test {
...
}
2> 前缀匹配
location /test {
...
}
location ^~ /test {
...
}
3> 正则匹配
location ~ /test$ {
...
}
location ~* /test$ {
...
}
1> 多个前缀匹配,访问/test/a,则先记住最长的前缀匹配,并继续匹配
location / {
root html;
index index.html index.htm;
}
location /test {
return 601;
}
location /test/a {
return 602;
}
命中的响应状态码
602
2> 前缀匹配和正则匹配,访问/test/a,则命中正则匹配
location / {
root html;
index index.html index.htm;
}
location /test/a {
return 601;
}
location ~* /test/a$ {
return 602;
}
命中的响应状态码
602
3> 优先前缀匹配和正则匹配,访问/test/a,则命中优先前缀匹配,终止匹配
location / {
root html;
index index.html index.htm;
}
location ^~ /test/a {
return 601;
}
location ~* /test/a$ {
return 602;
}
命中的响应状态码
601
4> 多个正则匹配命中,访问/test/a,则使用第一个命中的正则匹配,终止匹配
location / {
root html;
index index.html index.htm;
}
location ~* /a$ {
return 601;
}
location ~* /test/a$ {
return 602;
}
命中的响应状态码
601
5> 精确匹配和正则匹配,访问/test,精确匹配优先
location / {
root html;
index index.html index.htm;
}
location ~* /test {
return 602;
}
location = /test {
return 601;
}
命中的响应状态码
601
精确匹配 > 字符串匹配( 长 > 短 [ 注: ^~ 匹配则停止匹配 ]) > 正则匹配( 上 > 下 )
精确匹配 > (^~) > 正则匹配( 上 > 下 )>字符串(长 > 短)
解释:
标签:命中 自己 正则表达式 表达式 前缀 配置 很多 响应状态 正则表达
原文地址:https://www.cnblogs.com/redirect/p/10066744.html