通常网站的部分页面,需要特殊设置。
比如,/1.html 页面,需要用户访问控制(如allow all)。
location = /1.html {
allow all;
}
那部分页面该如何表达呢?
就是位置 Location URL { module }. 其中URL的表达方式中使用的正则表达式,常会有冲突的情况,请通过下面的实验,了解常见的冲突符号,并掌握其中的优先级。
语法规则:
location [=|~|~*|!~|!~*|^~] /uri/ {
module;
module;
}
- = 表示精确匹配,优先级也是最高的
- ~ 区分大小写的正则匹配
- ~* 不区分大小写的正则匹配
- / 通用匹配,任何请求都会匹配到
- ^~ 以某些字符串开头
- !~ 非(区分大小写匹配的正则)
- !~* 非(不区分大小写匹配的正则)
Location优先级:
= 》 ^~ 》 ~|~*|!~|!~* 》 /
精确匹配》字符开头》正则匹配》通配
Location 示例:
通过不同的表达式,观察表达式间的优先级
server {
listen 192.168.19.101;
root /abcd;
index index.html;
location / { index a.html; }
location ~ / { index b.html; }
location = / { index c.html; }
}
a.html/b.html/c.html存储不同内容即可。
访问页面。观察显示的内容。理解正则符号间的优先级。
a.html 《 b.html 《 c.html