多个目录的Apacheauthentication

我有网站运行在Apache 2.2.3。 网站的根目录包含三个目录。 我想如下设置这些目录的身份validation

  1. 只有用户1可以浏览所有页面

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

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

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

我已经尝试下面的configuration,但只有user1可以浏览网站其他用户无法访问网站。

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

请引导我一样。 提前致谢。

它应该工作,如果你把你所有的用户login信息在一个passwd文件,然后做这样的事情(未经testing)

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

我只是偶然发现了这个问题,想补充一下:

通常,您不希望在require语句中列出所有用户

要求用户用户1 …用户x

要么使用

要求有效的用户

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

要求组myGroup

为此你添加声明

AuthGroupFile / your / path / groupFile

groupFile的内容如下所示:

myGroup:user1 user2 user3