1. 修改虚拟主机配置
...
AllowOverride All #允许.htaccess覆盖配置文件,使.htaccess生效
...
2.在需要权限控制的目录下创建.htaccess
#比如要控制 /var/www/quanxian 目录,在/var/www/quanxian目录中创建.htaccess文件,填写如下内容
AuthUserFile /var/www/quanxian/.htpwd #[权限控制文件]
AuthType Basic
AuthName "[描述信息]"
ErrorDocument 401 /var/www/err_401.html #这句话是可以没有的
require valid-user #认证方式:用户认证(valid-user)或组认证(valid-group).
3.生成加密文件
sudo htpasswd -bc /var/www/quanxian/.htpwd wangdatestuser wangdatestpwd #
htpasswd的命令详解网上有好多,copy一个过来(http://hi.baidu.com/luoxiandong99/item/bd14b7462fe61ef7bdf45140)
##################################################################################################
apache htpasswd命令选项参数说明
-c 创建一个加密文件
-n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上
-m 默认apache htpassswd命令采用MD5算法对密码进行加密
-d apache htpassswd命令采用CRYPT算法对密码进行加密
-p apache htpassswd命令不对密码进行进行加密,即明文密码
-s apache htpassswd命令采用SHA算法对密码进行加密
-b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
-D 删除指定的用户
apache htpasswd命令用法实例
1、利用htpasswd命令添加用户
htpasswd -bc D:\licang\passwd yingzi 1234
2、在原有密码文件中增加下一个用户
htpasswd -b D:\licang\passwd ludi 1234
3、如何不更新密码文件,只显示加密后的用户名和密码
htpasswd -nb yingzi 1234
4、利用htpasswd命令删除用户名和密码
htpasswd -D D:\licang\passwd yingzi
5、利用htpasswd命令修改密码
htpasswd -D D:\licang\passwd yingzi
htpasswd -b D:\licang\passwd yingzi 5678
##################################################################################################
4.以上就配置完整体的基于apache层的账户访问权限控制,
a.创建白名单,只有(192.168.1.1, 和 192.168.1.2)能访问这个目录
在.htaccess中加入下面的内容
Order Deny,Allow#(1)
Allow from 192.168.1.1 192.168.1.2#(2)
Deny from All#(3)
b.创建黑名单,(192.168.1.1, 和 192.168.1.2)不能能访问这个目录
在.htaccess中加入下面的内容
Order Allow,Deny #(1)
Allow from all#(2)
Deny from 192.168.1.1 192.168.1.2#(3)