我试图拒绝某个服务器块上的所有访问权限。
server {
listen 8080;
server_name myserver;
root /srv/nkosl;
deny all;
location /mydistro {
return 302 https://www.ubuntu.com/;
}
location /files {
autoindex on;
}
}
这会拒绝访问文件位置(并成功返回403禁止的消息)。
但是我仍然可以访问myserver:8080 / mydistro并将它重定向到ubuntu页面。
我如何拒绝/ mydistro位置?
答案 0 :(得分:0)
尝试完全删除/mydistro
位置。或者,至少,对return 302 https://www.ubuntu.com/;
行进行评论。
要有选择地重定向,请尝试以下方法:
location /mydistro {
if ($remote_addr != 127.0.0.1) {
rewrite ^ https://www.ubuntu.com;
}
}
答案 1 :(得分:0)
this answer描述了为什么allow
/ deny
与return
/ rewrite
不兼容的原因。
解决此问题的一种方法确实是使用if
,但是在某些情况下if
在nginx中可能会很棘手,并且allow
/ deny
也可以使用网络掩码...