nginx之location匹配順序

`=` 開頭表示精確匹配
`^~` 開頭表示uri以某個常規字符串開頭,不是正則匹配
`~` 開頭表示區分大小寫的正則匹配;
`~*` 開頭表示不區分大小寫的正則匹配
`/` 通用匹配, 如果沒有其它匹配,任何請求都會匹配到
優先級
(location `=` ) > (location `完整路徑` ) > (location `^~` 路徑) > (location `~`,`~*` 從上向下正則順序,匹配在最後一條終止) > (location 部分起始路徑) > (`/`)

例子

location  = / {
  # 精確匹配 / ,主機名後面不能帶任何字符串
}

location ^~ /images/ {
  # 匹配任何以 /images/ 開頭的地址,匹配符合以後,停止往下搜索正則,採用這一條。
}

location ~ /documents/Xyz {
  # 匹配任何以 /documents/Xyz 開頭的地址,匹配符合以後,還要繼續往下搜索
  # 只有後面的正則表達式沒有匹配到時,這一條纔會採用這一條
}

location ~* \.(gif|jpg|jpeg)$ {
  # 匹配所有以 gif,jpg或jpeg 結尾的請求
}

location /documents/ {
  # 匹配任何以 /documents/ 開頭的地址,匹配符合以後,還要繼續往下搜索
  # 只有後面的正則表達式沒有匹配到時,這一條纔會採用這一條
}

location  / {
  # 因爲所有的地址都以 / 開頭,所以這條規則將匹配到所有請求
  # 但是正則和最長字符串會優先匹配
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章