Apache基于用户的访问控制

有时候,访问网站时会看到浏览器弹出一个输入框,提示输入用户名和密码才能访问。
出现这种情况是由于apache服务器对某些特定的目录设置了访问权限。

下面就来实现该功能。

在apache根目录下创建一个文件夹用作测试,代码如下所示

1 mkdir /var/www/html/userdir
2 mkdir /var/www/html/userdir/video /var/www/html/userdir/picture /var/www/html/userdir/data
3 mkdir /var/www/html/userdir/music /var/www/html/userdir/other

浏览器访问测试,效果如下图所示

接下来为该目录添加用户访问权限
编辑httpd服务器配置文件

1 vim /etc/httpd/conf/httpd.conf
2 #添加如下所示代码
3 <Directory "/var/www/html/userdir">
4          Options Indexes 
5          AuthName "Restricted Files"
6          AuthType Basic      //认证方式由auth_mod提供的basic方式
7          AuthUserFile "/var/www/.htpass"    //基于文件的认证方式以及文件名称
8          require valid-user      
9 </Directory>

详细选项说明参考:http://man.chinaunix.net/newsoft/ApacheManual/howto/auth.html
配置好后,文件内容如图所示

使用htpasswd命令添加用户并生成.htpass文件,命令如下所示

1 htpasswd -c /var/www/.htpass vampire    //vampire为访问用户名

执行后会看到目录/var/www中生成了.htpass文件

重启apache服务器
service httpd restart

打开浏览器访问测试如图所示

原文地址:https://www.cnblogs.com/iaknehc/p/7474434.html