我有nginx的基本身份验证设置,如下所示:
server {
...
location / {
...
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd;
...
}
}
如果你参观一些没有重写的东西,它就像一种魅力。
如果我访问一个.php文件,它会加载它,就像不需要身份验证一样。之后,在重写的页面上的身份验证也变得随机。
你知道这是怎么回事吗?
概述:访问www.mysite.com和验证工作!访问www.mysite.com/index.php,绕过身份验证,在不询问用户/pwd的情况下启动网站。
编辑:我还需要将相同的auth_basic内容添加到位置~.php{…}吗?我认为将它添加到根目录中可以处理所有后续结构,无论脚本语言等。
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
...
}
}