nginx location语法规则:location [=|~|~*|^~] /uri/ { … } nginx的location匹配的变量是$uri
符号 | 含义 |
= | 表示精确匹配 |
^~ | 表示uri以指定字符或字符串开头 |
~ | 表示区分大小写的正则匹配 |
~* | 表示不区分大小写的正则匹配 |
/ | 通用匹配,任何请求都会匹配到 |
规则优先级
= 高于 ^~ 高于 ~* 等于 ~ 高于 /
一些案例
location = "/12.jpg" { ... }
如:
www.lsylinux.com/12.jpg 匹配
www.lsylinux.com/abc/12.jpg 不匹配
location ^~ "/abc/" { ... }
如:
www.lsylinux.com/abc/123.html 匹配
www.lsylinux.com/a/abc/123.jpg 不匹配
location ~ "png" { ... }
如:
www.lsylinux.com/aaa/bbb/ccc/123.png 匹配
www.lsylinux.com/aaa/png/123.html 匹配
location ~* "png" { ... }
如:
www.lsylinux.com/aaa/bbb/ccc/123.PNG 匹配
www.lsylinux.com/aaa/png/123.html 匹配
location /admin/ { ... }
如:
www.lsylinux.com/admin/aaa/1.php 匹配
www.lsylinux.com/123/admin/1.php 不匹配
location不支持 !~
如: location !~ 'png'{ ... }
#如果有这样的需求,可以通过if来实现,
#如: if ($uri !~ 'png') { ... }
#注意:location优先级小于if