我有网站运行在Apache 2.2.3。 网站的根目录包含三个目录。 我想如下设置这些目录的身份validation
只有用户1可以浏览所有页面
user2只能访问mydomain.com/dir1/
user3只能访问mydomain.com/dir2/
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