语法规则: 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;
}