我在 Apache 中设置密码保护时遇到了一些困难
在 .htaccess 中,我有
AuthUserFile /var/www/vhosts/domain.net/httpdocs/.htpasswd
AuthGroupFile /dev/null
AuthName "Test Server"
AuthType Basic
require user testuser
然后在 .htpasswd 中,我有类似的东西
testuser:encrypted password
现在的问题是,我忘记了我用的是哪个 .htpasswd 生成器。当我尝试添加新用户和密码时,它不起作用。例如,当我输入时,require user newuser
它总是失败(提示不断出现)。然后当我恢复时,testuser
它就起作用了
我如何设置,以便有 1 个或一些可以访问所有内容的“管理员”和只能查看特定文件夹的查看者...例如
/ - only admins
/folder1 - only admins or folder1's users
/folder2 - only admins or folder2's users
另外我该怎么做才能不允许显示目录列表
答案1
该require user
指令仅允许一个用户访问特定资源。要允许多个用户访问,您应该配置授权组文件并使用Require group
指令允许访问资源。Apache 文档是这里
/folder1/.htaccess
AuthUserFile /var/www/vhosts/domain.net/httpdocs/.htpasswd
AuthGroupFile /var/www/vhosts/domain.net/httpdocs/.GroupFile
AuthName "Test Group1"
AuthType Basic
require group Group1
/folder2/.htaccess
AuthUserFile /var/www/vhosts/domain.net/httpdocs/.htpasswd
AuthGroupFile /var/www/vhosts/domain.net/httpdocs/.GroupFile
AuthName "Test Group2"
AuthType Basic
require group Group2
ETC。
如果你想指定多个组,那么
require group Group1 Group2 ...
并在 GroupFile 中
Group1: testuser admin1 admin2
Group2: testuser1 admin1 admin2
答案2
根目录中的 .htaccess:
AuthUserFile /var/.htpasswd
AuthName "Test Server"
AuthType Basic
require user admin
Options -Indexes
文件夹1中的.htaccess:
AuthUserFile /var/.htpasswd
AuthName "Test Server"
AuthType Basic
require user admin folder1
文件夹2中的.htaccess:
AuthUserFile /var/.htpasswd
AuthName "Test Server"
AuthType Basic
require user admin folder2