我的网站在 apache 2.2.3 中运行。网站的根目录包含三个目录。我想为这些目录设置身份验证,如下所示
仅user1可以浏览所有页面
user2 只能访问 mydomain.com/dir1/
user3 只能访问 mydomain.com/dir2/
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