我有 2 个文件夹:/protected 和 /admin
在 htpasswd 中我有多个用户,其中一个名为“admin”
我该如何设置以便所有具有管理员权限的用户都可以访问 /protected 文件夹,但只有管理员可以访问 /admin 文件夹?
location /protected {
auth_basic "Protected Area";
auth_basic_user_file .htpasswd;
root /static;
autoindex_exact_size off;
autoindex on;
}
location /admin {
auth_basic "Restricted Area";
auth_basic_user_file .htpasswd;
set $is_admin 0;
if ($remote_user = "admin") {
set $is_admin 1;
}
if ($is_admin = 0) {
return 403;
}
root /static;
autoindex_exact_size off;
autoindex on;
}
location / {
root /static;
autoindex_exact_size off;
autoindex on;
}
最佳答案
1
您可以尝试以下方法:
在server
上下文中,添加以下内容:
map $remote_user $htpasswd_path {
admin .htpasswd;
default /dev/null;
}
然后在server
上下文中:
auth_basic_user_file $htpasswd_path;
通过此配置,人们应该能够根据用户名选择不同的文件。
1
-
有效,非常感谢!
–
|
|