我有这样的nginx基本身份验证设置:
server {
...
location / {
...
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
...
}
}
如果您访问未重写的内容,它就像一个魅力。
如果我访问.php文件,它会加载它,就像不需要身份验证一样。之后,身份验证在重写的页面上也会随机变化。
知道这是怎么回事?
回顾一下: 访问 www.mysite.com 并进行身份验证工作! 访问 www.mysite.com/index.php 并绕过身份验证,在不询问用户/密码的情况下启动网站。
编辑: 我需要将相同的auth_basic内容添加到〜.php {...}的位置吗?我认为将它添加到根管理所有后续结构,无论脚本语言等。
答案 0 :(得分:2)
Nginx基本身份验证适用于您放置的位置。
请注意,nginx仅为每个请求选择一个位置。这意味着将命令放在location /
块中,此命令将仅针对此位置执行(这意味着您的请求不会被任何其他位置块捕获)。如果您希望基本身份验证适用于服务器中的每个位置,只需将其放在每个位置,或者甚至更好地放在服务器块中,如下所示
server {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
...
location / {
#auth_basic already active, no need to add it again
...
}
}