語法規則
模式 含義
location = /uri = 表示精確匹配,只有完全匹配上才能生效
location ^~ /uri ^~ 開頭對URL路徑進行前綴匹配,並且在正則之前。
location ~ pattern 開頭表示區分大小寫的正則匹配
location ~* pattern 開頭表示不區分大小寫的正則匹配
location /uri 不帶任何修飾符,也表示前綴匹配,但是在正則匹配之後
location / 通用匹配,任何未匹配到其它location的請求都會匹配到,相當於switch中的default
前綴匹配時,Nginx 不對 url 做編碼,因此請求為 /static/20%/aa,可以被規則 ^~ /static/ /aa 匹配到(註意是空格)
多個 location 配置的情況下匹配順序為(參考資料而來,還未實際驗證,試試就知道了,不必拘泥,僅供參考):
註意:前綴匹配,如果有包含關系時,按最大匹配原則進行匹配。比如在前綴匹配:location /dir01 與location /dir01/dir02,如有請求 ;
index index.html index.php;
root html;
if ( ") {
rewrite ^(.*) $1 redirect;
}
}
防盜鏈
location ~* .(gif|jpg|swf) invalid_referer) {
rewrite ^/ http://$host/logo.png;
}
}
根據文件類型設置過期時間
location ~* .(js|css|jpg|jpeg|gif|png|swf) request_filename) {
expires 1h;
break;
}
}
禁止訪問某個目錄
location ~* .(txt|doc)${
root /data/www/wwwroot/linuxtone/test;
deny all;
}
參考文檔資料鏈接