虚拟主机配置文件httpd-vhosts.conf中,需要加入
<Directory /mysqldata/www>
AllowOverride AuthConfig
</Directory>
然后在虚拟主机的主目录,即DocumentRoot 目录下
vi /mysqldata/www/.htaccess
加入
AuthName "frank share web"
AuthType Basic
AuthUserFile /mysqldata/www/.htpasswd
require valid-user
保存后,然后
创建apache的验证用户
htpasswd -c -m /mysqldata/www/.htpasswd test
#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数,-m选项,加密
如果你想修改密码,可以如下
htpasswd -m .htpasswd test2
重启apache,即可。
到此,你已经配置完成。下面介绍另一种方式:
##################################
vi http.conf
在相应的虚拟主机配置文件段,加入
<Directory /mysqldata/www>
AllowOverride AuthConfig
AuthName "zdy"
AuthType Basic
AuthUserFile /mysqldata/www/.htpasswd
require valid-user
</Directory>
保存后,然后
创建apache的验证用户
htpasswd -c -m /data/.htpasswd test
针对某个页面进行控制使用filesmatch,如下
网站中只有1.html页面访问需要密码,其他页面都可以直接访问。。。
<Directory /mysqldata/www>
Require all granted
<filesmatch 1.html>
AllowOverride AuthConfig
AuthName "123"
AuthType Basic
AuthUserFile /mysqldata/www/.htpasswd
require valid-user
</filesmatch>
</Directory>
附:
AlowOverride None
#允许覆盖参数功能
#表示是否允许额外配置文件.htaccess的某些参数覆盖。我们可以在httpd.conf内设置好所有的权限
#不过这样一来,若用户自己的个人网页想要修改权限时将会对管理员造成困扰。因此,Apache默认
#可以让用户以目录下的.htaccess文件内覆盖<Direcoty>内的某些功能参数。这个项目则是在规定
#.htaccess可以覆盖的权限类型有哪些。常见的有以下几种:
# ALL:全部的权限均可以覆盖
# AuthConfig:仅有网页认证(帐号与密码)可以覆盖
# Indexes:仅允许Indexes方面的覆盖
# Limits:允许用户利用Allow、Deny与Order管理可浏览的权限
# None:不可覆盖,也就是让.htaccess文件失效
#使用.htaccess会严重影响到Apache的性能,如果不是特殊需要,建议关闭
AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):
None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。
All: 在.htaccess文件中可以使用所有的指令。