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指定的文件中的所有用户都可以访问)