我需要使用nginx密码保护我的文件夹。
我已使用此规则
location ^~ /test/
{
auth_basic "Restricted";
auth_basic_user_file conf/htpasswd;
}
但问题是,如果我去/test/file.php它可以工作,它不需要授权。 只有/测试/要求输入密码。
答案 0 :(得分:1)
我正在使用它:
location ~ /img/index.php {
root /var/www/nginx-default/phpmyedit/;
auth_basic "phpmyedit";
auth_basic_user_file /var/www/phpmyedit.pass;
access_log /var/log/nginx/img.log;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
答案 1 :(得分:0)
假设您已正确设置密码,您只需删除路径中的尾部斜杠即可。此外,您不需要规则中的^〜。这是一个例子:
location /test {
try_files $uri $uri/ =404;
auth_basic "Access Denied!";
auth_basic_user_file /etc/nginx/.htpasswd;
}
要将新用户添加到密码,请使用以下步骤:
sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd"
这将添加一个新用户:admin到该文件。要为此新用户设置加密密码,请使用:
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
系统将提示您输入密码并验证新密码。而已。你们都准备好了!