Linux-LAMP- Apache用户认证

打开网站,需要输入用户名和密码。和其他的用户名和密码不一样,浏览器打开网站,界面什么都没有,输入用户名和密码之后,才能访问网页,目的增加安全性,但是用户体验不好

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加密,指定密码文件所在位置,
Linux-LAMP- Apache用户认证
当第二次创建时,不需要-c,因为第一次已经创建了
Linux-LAMP- Apache用户认证

重新加载配置-t , graceful
Linux-LAMP- Apache用户认证
绑定hosts,浏览器测试
Linux-LAMP- Apache用户认证
Linux-LAMP- Apache用户认证
curl -x127.0.0.1:80 www.123.com //状态码为401,401访问需要做用户验证

注释: -u用户名:密码
Linux-LAMP- Apache用户认证

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>

猜你喜欢

转载自blog.51cto.com/13451715/2318166