通常网站的部分页面,需要特殊设置。

比如,/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