nginx官方文档中location块的语法结构为
location [ = | ~ | ~* | ^~ | ] uri {……}
uri:待匹配的字符串,可以使不含正则表达的字符串,如/myserver.php等
location模式 | 含义 |
---|---|
以= 开头 | 表示精准匹配,如只匹配根目录结尾的请求,后面不能带任何字符串 |
以 ^~ 开头 | 表示uri以某个常规字符串开头,不是正则匹配 |
以 ~ 开头 | 表示区分大小写的正则匹配 |
以 ~* 开头 | 表示不区分大小写的正则匹配 |
以 / 开头 | 通用匹配, 如果没有其它匹配,任何请求都会匹配到 |
通用匹配
匹配所有地址都是以/开头
location / {
[configuration B]
}
^~ 匹配规则
location ^~ /filedown/ {
root /usr/local/nfs/;
autoindex on;
if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
add_header Content-Disposition: 'attachment;';
}
}
IP:端口/filedown 等价于 /usr/local/nfs/filedown
URL:IP:端口/filedown/aaa.zip
匹配到/usr/local/nfs/filedown/aaa.zip
location /images/ {
root /data;
}