首页 » 资源分享 » 正文

apache配置目录需输入用户名密码才能访问



apache配置目录需输入用户名密码才能访问,下面以配置/data/wwwroot/res目录权限为例。

1、首先,我们已经安装好了Apache服务器
修改Apache的配置文件,对需要认证的资源所在的目录进行配置:
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
内容如下:
< Directory "/data/wwwroot/res">
  Options Indexes FollowSymLinks
  Allowoverride authconfig
  Order allow,deny
  Allow from all
< /Directory>
其中,Allowoverride authconfig一行表示允许对/data/wwwroot/res目录下的内容进行用户认证。

2、在限制访问目录/data/wwwroot/res下创建文件.htaccess:
[root@localhost ~]# vim /data/wwwroot/res/.htaccess
内容如下:
AuthName “认证时的提示信息”
AuthType basic
AuthUserFile /data/wwwroot/res/members.txt
require valid-user

3.利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件:/data/wwwroot/res/members.txt
#第一次添加用户时member.txt文件不存在,需要用-c选项创建文件
[root@localhost ~]# htpasswd -bc /data/wwwroot/res/members.txt user1 123456
[root@localhost ~]# htpasswd -b /data/wwwroot/res/members.txt user2 223456

重启httpd服务,访问该目录,则提示需要输入用户密码,也就是members.txt文件中我们创建的账号。

说明:
.htaccess文件中常用的配置选项有以下几个:
1、AuthName:定义提示信息,用户访问时提示信息会出现在认证的对话框中
2、AuthType:定义认证类型,在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如:MD5
3、AuthUserFile:定义包含用户名和密码的文本文件,每行一对
4、AuthGroupFile:定义包含用户组和组成员的文本文件。组成员之间用空格分开,如:group1:user1 user2
5、require命令:定义哪些用户或组才能被授权访问。如:
  require user user1 user2 (只有用户user1和user2可以访问)
  requires groups group1 (只有group1中的成员可以访问)
  require valid-user (在AuthUserFile指定的文件中的所有用户都可以访问)