首頁 >後端開發 >php教程 >nginx location符合規則

nginx location符合規則

WBOY
WBOY原創
2016-07-28 08:27:371165瀏覽

location匹配指令

~      #波浪線表示執行一個正則匹配,區分大小寫
~*    #表示執行一個正則匹配,不區分大小寫
~*    #表示執行一個正則匹配,不區分大小寫
~*    #表示執行一個正則匹配,不區分大小寫
^~    #^~表示普通字元匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄

=      #進行普通字符精確匹配

@     #"@" 定義一個命名的location,使用在內部定向時,例如 error_page, try_files
location 匹配的優先權(與location在設定檔中的順序無關)

= 精確比對會第一個被處理。如果發現精確匹配,nginx停止搜尋其他匹配。
普通字元匹配,正規表示式規則和長的區塊規則將被優先和查詢匹配,也就是說如果該項匹配還需去看有沒有正規表示式匹配和更長的匹配。

^~ 則只匹配該規則,nginx停止搜尋其他匹配,否則nginx會繼續處理其他location指令。

最後匹配理帶有"~"和"~*"的指令,如果找到相應的匹配,則nginx停止搜尋其他匹配;當沒有正則表達式或沒有正則表達式被匹配的情況下,那麼匹配程度最高的逐字匹配指令會被使用。

location 優先官方文件
  1. Directives with the = prefix that match the query exactly. If found, searching st.
  2. Regular expressions, in order of definition in the configuration file.
    =前綴的指令嚴格符合這個查詢。如果找到,停止搜尋。
  1. 所有剩餘的常規字串,最長的匹配。如果這個匹配使用^?前綴,搜尋停止。
  2. 正規表示式,在設定檔中定義的順序。
  3. 如果第3條規則產生匹配的話,結果被使用。否則,如同從第2條規則被使用。
例如

location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何请求,因为所有请求都是以"/"开始
  # 但是更长字符匹配或者正则表达式匹配会优先匹配
  [ configuration B ] 
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配以 gif, jpg, or jpeg结尾的请求. 
  # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.   
  [ configuration D ] 
}
以上就介紹了 nginx location匹配規則,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Nginx 設定筆記下一篇:Nginx 設定筆記