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

虚拟主机配置文件httpd-vhosts.conf中,需要加入

<Directory /mysqldata/www>

   AllowOverride AuthConfig

</Directory>

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

vi   /mysqldata/www/.htaccess

加入

AuthName "frank share web"

AuthType Basic

AuthUserFile /mysqldata/www/.htpasswd

require valid-user

保存后,然后

创建apache的验证用户

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

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

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

htpasswd -m .htpasswd test2

重启apache,即可。


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

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

vi   http.conf

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

<Directory /mysqldata/www>

            AllowOverride AuthConfig

            AuthName "zdy"

            AuthType Basic

            AuthUserFile /mysqldata/www/.htpasswd

        require valid-user

</Directory>

保存后,然后

创建apache的验证用户

htpasswd -c -m /data/.htpasswd  test

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

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

<Directory /mysqldata/www>
Require all granted
<filesmatch 1.html>
AllowOverride AuthConfig
            AuthName "123"
            AuthType Basic
            AuthUserFile /mysqldata/www/.htpasswd
            require valid-user
</filesmatch>
</Directory>


附:

AlowOverride None

#允许覆盖参数功能

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

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

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

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

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

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

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

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

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

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

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

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

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



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。