一,匹配规则css
1,= 表示精确匹配url
例子:http://localhost/ 将匹配到 location = / {...}spa
http://localhost/aaa 能够匹配到 location = /aaa {...}字符串
2,^~表示匹配url以什么样的字符串开头io
例子:http://localhost/static/haha 能够匹配到 location = ^~/static/haha {...}配置
http://localhost/static/haha/hehe 能够匹配到 location = ^~/static/ /haha {...}请求
3,~表示区分大小写的正则匹配配置文件
~*不区分大小写的正则匹配static
例子:对于location ~ \.(gif|jpg|png|js|css)$ {...}和location ~* \.png$ {...}文件
http://localhost/123.png均可以与之匹配。而http://localhost/123.PNG只能与后一个匹配
4,!~表示区分大小写的不匹配
!~*不区分大小写的不匹配
例子:对于location !~ \.(gif|jpg|png|js|css)$ {...}和location !~* \.png$ {...}
http://localhost/123.png和以上都不匹配,http://localhost/123.PNG与第一个匹配,第二个不匹配,http://localhost/123.mp4与以上两个都匹配
5,/ 通用匹配,任何请求均可以匹配到location / {...}
二,匹配顺序
当一个请求能匹配多个location的时候会怎么样呢?固然是只遵循一个location,那么遵循哪个的。
首先匹配=,其次匹配^~,其余的正则匹配按照配置文件中的顺序来,最后匹配 /,当匹配到合适的location的时候,中止匹配,处理请求。