location ^~ /test {
return 404;
}
解释:location ^~ 匹配浏览器的域名 区分大小写
/test 域名后面跟着的目录名称(可以换成别的)
return 404;也可以把 deny all 改换成 return 404,这样将返回 404 而不是 403 Forbidden,更有“欺骗性”
^ 和 ~ 分别代表什么意思呢 为什么他们就代表了url呢?
基本语法:location [=|~|~*|^~] /uri/ { … }
= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
~ 为区分大小写匹配(可用正则表达式) 区分大小写匹配
!~为区分大小写不匹配 不区分大小写匹配
~* 为不区分大小写匹配(可用正则表达式) 区分大小写不匹配
!~*为不区分大小写不匹配 不区分大小写不匹配
^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。
扩展:
location ~* \.(txt|doc)$ {
if (-f $request_filename) {
root /home/domain/public_html/test;
break;
}
}
location ~* \.bat {
deny all;
}
tip:对某些特定后缀名禁止访问
location /phpsysinfo/ {
allow 192.168.0.10;
deny all;
}
tips:对某个目录进行访问限制 除了指定ip外 全部拒绝访问:
location ~ ^/(uploads|images)/.*\.(php|php5|jsp)$ {
deny all;
}
tips:在目录uploads、images目录下面的所有php、jsp都不能访
本文详细解析了Nginx配置中location指令的使用方法,包括各种前缀如=、~、~*、!~、^~的意义及应用场景,通过实例展示了如何实现URL匹配、文件类型限制、目录访问控制等高级功能。
4473

被折叠的 条评论
为什么被折叠?



