1、location 指令介紹
1.1、語法
| 語法 | 位置 |
|
location [ = | ~ | ~* | ^~ ] uri { ... } |
server, location |
1.2、匹配型別
| 型別 | 說明 |
| = | 精確匹配 |
| 空 或 ^~ |
字串匹配 如果 ^~ 是最長的字串匹配,則停止搜索后續的正則匹配 |
| ~ | 區分大小寫的正則匹配 |
| ~* | 不區分大小寫的正則匹配 |
1.3、uri 正則運算式
| 運算式 | 說明 |
| * | 重復前面的字符 0 次或多次 |
| ? | 重復前面的字符 0 次或 1 次 |
| + | 重復前面的字符 1 次或多次 |
| . | 匹配除換行符以外的任意一個字符 |
| ^ | 以什么開頭 |
| $ | 以什么結尾 |
| \S | 非空白字符 |
| | | 或 |
| () | 捕獲組 |
1.4、匹配優先級
精確匹配(=) > 字串匹配(長 > 短 [注: 如果 ^~ 是最長匹配則停止后續正則匹配]) > 正則匹配(上 > 下)
- 精確匹配只能命中一個
- 字串匹配使用匹配最長的最為匹配結果
- 正則匹配按照 location 定義的順序進行匹配,先定義具有高優先級
字串匹配和正則匹配:字串匹配優先搜索,但是只是記錄下最長的匹配 ( 如果 ^~ 是最長的匹配,則會直接命中,停止搜索正則 );然后繼續搜索正則匹配,如果有正則匹配,則命中正則匹配;如果沒有正則匹配,則命中最長的字串匹配,
2、使用樣例
location = / { [ configuration A ] } location / { [ configuration B ] } location /documents/ { [ configuration C ] } location ^~ /images/ { [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { [ configuration E ] }
"/" 請求將匹配配置 A,"/index.html" 請求將匹配配置 B,"/documents/document.html" 請求將匹配配置 C,"/images/1.gif" 請求將匹配配置 D,而 "/documents/1.jpg" 請求將匹配配置 E,
參考:https://nginx.org/en/docs/http/ngx_http_core_module.html#location,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/553016.html
標籤:其他
上一篇:Nginx 入門實戰(5)--location 指令說明
下一篇:返回列表
