語法規則: location [=|~|~*|^~] /uri/ { … }
其中location匹配的指是path部分的值,不包括主機名(域名、端口號等)、查詢字符串(第一個問號后面的)等其他部分
= 開頭 表示精確 匹配
^~ 開頭表示uri以某個常規字符串開頭(不使用正則匹配),理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為/static/20%/aa,
可以被規則^~ /static/ /aa匹配到(注意是空格)。
~ 開頭表示區分大小寫的 正則匹配(后面跟着正則表達式)
~* 開頭表示不區分大小寫的 正則匹配(后面跟着正則表達式)
示例一:以下表示在訪問
http://127.0.0.1:8000/dsad_1231/publish/dsdsd/dsad.html時,就再訪問本地8000端口上的server/publish/dsdsd/dsad.html的地址;
location ~ ^(/([0-9a-zA-Z\_])*)/publish/(.*) {
proxy_pass
http://127.0.0.1:8000/server/publish/$3;
}
示例二: 以下配置表示訪問
http://127.0.0.1/12eee_345/test/HQ.png時,就去訪問d盤的目錄下“(.*)”這個目錄的下的文件
location ~ ^(/([0-9a-zA-Z\_])*)/(.*){
alias D://$3;
}
示例二: 以下配置表示訪問
http://127.0.0.1/12eee_345/test/HQ.png時,就去訪問d盤的目錄下“
/test/HQ.png”這個目錄再加上“
12eee_345/test/HQ.png”這個目錄的下的文件
location ~ ^(/([0-9a-zA-Z\_])*)/{
root D://$3;
}