nginx location匹配規則

location正則表達式

語法:location[=|~|~*|^~|@]/uri/{...}bash

配置塊:server服務器

    location會嘗試根據用戶請求中的URI來匹配上面的uri表達式,若是能夠匹配,就選擇location{}塊中的配置來處理用戶請求。配置方式是多樣的,匹配規則以下code

標示把URI做爲字符串,以便參與參數中的uri作徹底匹配。例如:server

location =/{
  #只有當用戶請求是/時,纔會使用該location下的配置
 ...
}

~ 表示匹配URI時是字母大小寫敏感的字符串

~* 表示匹配URI時是忽略大小寫敏感的io

^~ 表示匹配URI時只須要其前半部分與uri參數匹配便可。例如:class

location ^~ /imgages/{
   # 以/imgages/開始的請求都會被匹配上
   ...
}

表示僅用於Nginx服務器內部請求之間的重定向,帶有@的location不直接處理用戶請求。配置

固然,在uri參數裏是能夠用正則表達式的,例如語法

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

    注意,location是有順序的,當一個請求有可能匹配多個location時,實際上這個請求會被第一個location處理。

    在以上各類匹配方式中,都只能表達爲「若是匹配。。。則。。。」。而若是須要表達「若是不匹配。。。則。。。」,就很難作到。有一種解決方法是在最後一個location中使用/做爲參數,它會匹配全部的HTTP請求,這樣就能夠標識若是不能匹配前面的全部location,則由"/"這個location來處理。例如:

location /{
 #能夠匹配全部請求
 ...
}
相關文章
相關標籤/搜索