A-A+

Apache在虚拟主机中设置用户验证笔记

2016年01月05日 站长资讯 暂无评论

虚拟主机里使用的是apache服务器,配置文件httpd-vhosts.conf中,需要加入

  1. <Directory /mysqldata/www>  
  2.    AllowOverride AuthConfig  
  3. </Directory>  

然后在虚拟主机的主目录,即DocumentRoot 目录下

vi /mysqldata/www/.htaccess

加入

  1. AuthName "frank share web"  
  2. AuthType Basic  
  3. AuthUserFile /mysqldata/www/.htpasswd  
  4. require valid-user  

保存后,然后

创建apache的验证用户

htpasswd -c -m /mysqldata/www/.htpasswd test

#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数,-m选项,加密

如果你想修改密码,可以如下

htpasswd -m .htpasswd test2

重启apache,即可。

到此,你已经配置完成。下面介绍另一种方式:

##################################

vi http.conf

在相应的虚拟主机配置文件段,加入

  1. <Directory /mysqldata/www>  
  2.             AllowOverride AuthConfig  
  3.             AuthName "zdy"  
  4.             AuthType Basic  
  5.             AuthUserFile /mysqldata/www/.htpasswd  
  6.         require valid-user  
  7. </Directory>  

保存后,然后

创建apache的验证用户

htpasswd -c -m /data/.htpasswd test

针对某个页面进行控制使用filesmatch,如下

网站中只有1.html页面访问需要密码,其他页面都可以直接访问。。。

  1. <Directory /mysqldata/www>  
  2. Require all granted  
  3. <filesmatch 1.html>  
  4. AllowOverride AuthConfig   
  5.             AuthName "123"  
  6.             AuthType Basic  
  7.             AuthUserFile /mysqldata/www/.htpasswd  
  8.             require valid-user  
  9. </filesmatch>  
  10. </Directory>  

附:

AlowOverride None

#允许覆盖参数功能

#表示是否允许额外配置文件.htaccess的某些参数覆盖。我们可以在httpd.conf内设置好所有的权限

#不过这样一来,若用户自己的个人网页想要修改权限时将会对管理员造成困扰。因此,Apache默认

#可以让用户以目录下的.htaccess文件内覆盖内的某些功能参数。这个项目则是在规定

#.htaccess可以覆盖的权限类型有哪些。常见的有以下几种:

# ALL:全部的权限均可以覆盖

# AuthConfig:仅有网页认证(帐号与密码)可以覆盖

# Indexes:仅允许Indexes方面的覆盖

# Limits:允许用户利用Allow、Deny与Order管理可浏览的权限

# None:不可覆盖,也就是让.htaccess文件失效

#使用.htaccess会严重影响到Apache的性能,如果不是特殊需要,建议关闭

AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):

None: 当AllowOverride被设置为None时。不搜索该目录下的.htaccess文件(可以减小服务器开销)。

All: 在.htaccess文件中可以使用所有的指令。

标签:

给我留言