vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf ????????????????//把123.com那个虚拟主机编辑成如下内容
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<Directory /data/wwwroot/www.123.com> ????????????//指定认证的目录,针对那个目录去做用户认证
AllowOverride AuthConfig ????????????????????//这个相当于打开认证的开关,如果没有代表没有开启认证
AuthName "123.com user auth" ????????????//自定义认证的名字,作用不大
AuthType Basic ????????????????????????????????????//认证的类型,一般为Basic,其他类型没用过
AuthUserFile /data/.htpasswd ?????????????????//指定密码文件所在位置
require valid-user ????????????????????????//指定需要认证的用户为全部可用用户,用户名密码文件里面,所定义的用户
</Directory>
</VirtualHost>
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming ????#生成用户名密码。-c创建,-m,md5加密,指定密码文件所在位置,
当第二次创建时,不需要-c,因为第一次已经创建了
重新加载配置-t , graceful
绑定hosts,浏览器测试
curl -x127.0.0.1:80 www.123.com //状态码为401,401访问需要做用户验证
注释: -u用户名:密码
curl -x127.0.0.1:80 -uaming:passwd www.123.com //状态码为200
还可以针对单个文件进行认证
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
<FilesMatch admin.php> ????#当访问的文件,访问admin.php时,才需要进行下面的操作
AllowOverride AuthConfig
AuthName "123.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
</VirtualHost>
Linux-LAMP- Apache用户认证
原文地址:http://blog.51cto.com/13451715/2318166