nginx location語法 ~ # 區分大小寫的正則匹配 location ~ \.(gif|jpg|png|js|css)$ { #規則D } ~* # 不區分大小寫的正則匹配(和~的功能相同,就是不區分大小寫) location ~* \.png$ { #規則E } ^~ #^~表示普通字符匹配,如果該選項匹配,只匹配該選項,不匹配別的選項,一般用來匹配目錄 location ^~ /static/ { #規則C } = #進行普通字符精確匹配 否定用法:不匹配用法: !~ 區分大小寫的不匹配 !~* 不區分大小寫的 不匹配 location 匹配的優先級(與location在配置文件中的順序無關) = 精確匹配會第一個被處理。如果發現精確匹配,nginx停止搜索其他匹配。 普通字符匹配,正則表達式規則和長的塊規則將被優先和查詢匹配,也就是說如果該項匹配還需去看有沒有正則表達式匹配和更長的匹配。 ^~ 則只匹配該規則,nginx停止搜索其他匹配,否則nginx會繼續處理其他location指令。 最后匹配理帶有"~"和"~*"的指令,如果找到相應的匹配,則nginx停止搜索其他匹配;當沒有正則表達式或者沒有正則表達式被匹配的情況下,那么匹配程度最高的逐字匹配指令會被使用。 示例 location = / { # 只匹配 / 查詢。 } location / { # 匹配任何查詢,因為所有請求都已 / 開頭。但是正則表達式規則和長的塊規則將被優先和查詢匹配。 } location ^~ /images/ { #匹配任何已 /images/ 開頭的任何查詢並且停止搜索。任何正則表達式將不會被測試。 } location ~*.(gif|jpg|jpeg)$ { #匹配任何已 gif、jpg 或 jpeg 結尾的請求。 } location ~*.(gif|jpg|swf)$ { valid_referers none blocked start.igrow.cn sta.igrow.cn; if (KaTeX parse error: Expected '}', got '#' at position 22: …d_referer) { #̲防盜鏈 rewrite ^…host/logo.png; } }