Apache 多个目录的身份验证

Apache 多个目录的身份验证

我的网站在 apache 2.2.3 中运行。网站的根目录包含三个目录。我想为这些目录设置身份验证,如下所示

  1. 仅user1可以浏览所有页面

  2. user2 只能访问 mydomain.com/dir1/

  3. user3 只能访问 mydomain.com/dir2/

  4. user4 只能访问 mydomain.com/dir3/

我尝试了以下配置,但只有用户 1 可以浏览网站,其他用户无法访问网站。

<directory /var/www/html/example>
        AuthUserFile /etc/httpd/user1-htpasswd
        AuthName "Resricted"
        AuthType Basic
        Require user user1
</directory>

<directory /var/www/html/example/dir1/>
        AuthUserFile /etc/httpd/user2-htpasswd
        AuthName "Resricted"
        AuthType Basic
        Require user user2
</directory>

<directory /var/www/html/example/dir2/>
        AuthUserFile /etc/httpd/user3-htpasswd
        AuthName "Resricted"
        AuthType Basic
        Require user user3
</directory>

请为我提供同样的指导。提前致谢。

答案1

如果您将所有用户的登录信息放在一个密码文件中,然后执行如下操作,它应该可以工作(未经测试)

<directory /var/www/html/example/dir1/>
        AuthUserFile /etc/httpd/users-htpasswd
        AuthName "Resricted"
        AuthType Basic
        Require user user1
        Require user user2
</directory>

<directory /var/www/html/example/dir2/>
        AuthUserFile /etc/httpd/users-htpasswd
        AuthName "Resricted"
        AuthType Basic
        Require user user1
        Require user user3
</directory>

答案2

我刚刚偶然发现了这个问题并想补充一下:

通常你不想列出所有用户require 语句

需要用户用户 1...用户 x

要么使用

需要有效用户

如果你列出所有用户或将用户添加到组中

需要组 myGroup

为此,您添加语句

授权组文件/你的/路径/groupFile

的内容群组文件类似于:

我的组:用户1 用户2 用户3

相关内容