设置Apache密码保护

设置Apache密码保护

我在 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

相关内容