一,匹配規則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的時候,中止匹配,處理請求。