我需要拒绝使用Nginx
访问特定文件夹中的大多数文件这是我试过的配置。
location ~ /rapidleech/(classes|configs|files|hosts|languages|rar|templates) {
deny all;
}
location /rapidleech/files/files.lst {
allow all;
}
信息:rapidleech文件夹包含类(文件夹),配置(文件夹)....
Nginx似乎忽略allow all;
因为我在尝试访问时被禁止403
/rapidleech/files/files.lst
感谢任何帮助..
答案 0 :(得分:1)
这是因为正则表达式位置优先于正常位置。请阅读documentation,了解nginx如何选择最佳匹配位置。
在您的情况下,您可以使用^~
修饰符
location ~ /rapidleech/(classes|configs|files|hosts|languages|rar|templates) {
deny all;
}
location ^~ /rapidleech/files/files.lst {
allow all;
}
此外,您应该意识到,regexp位置与请求的任何部分匹配,而不仅仅是开头,因此您的配置也会阻止访问/some/path/rapidleech/classes
。
如果可以禁止所有/rapidleech/
树,那么它会更简单,更有效。
location /rapidleech/ {
deny all;
}
location /rapidleech/files/files.lst {
allow all;
}