找回密码
 注册
查看: 925|回复: 3

apache服务器实现用户验证的问题

[复制链接]
发表于 2006-3-8 16:33:23 | 显示全部楼层 |阅读模式
我在RH9.0安装了APACHE,在做apache服务器实现用户验证的实验的时候出现了问题
我看日志说是无法打开.htpasswd文件.请高手指教一二.
日志:
[ error][client 192.168.0.100] (13)!!!!!!! could not open password file :/var/www/html/ca/.htpasswd

httpd.conf中的相关配置:
< directory "/var/www/html/ca">
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
</directory>

/var/www/html/ca/.htaccess的配置:
authname "aaa"
authtype basic
authuserfile /var/www/html/ca/.htpasswd
require valid-user

用htpasswd -c .htpasswd aaa 的命令为aaa建了密码
.htpasswd文件内容为
aaa:VH7fQLXQQSIPK

在浏览器中要访问这个页面时要输密码,但是就是无法进入


发表于 2006-3-8 19:32:21 | 显示全部楼层
检查httpd.conf:

  AllowOverride All将允许.htaccess文件能改变所有的访问控制功能,如果仅仅希望目录的所有者只控制部分访问控制功能,可以使用AllowOverride的其他设置选项,那样.htaccess只能使用允许的设置选项。

  要在.htaccess文件中针对IP地址和域名进行控制,就需要使用访问控制语句的Limit语句。因此就要求httpd.conf中必须允许控制文件使用Limit功能,对应的设置为AllowOverride Limit选项(或All选项)。

  Limit语句可以使用不同的参数,这些参数为HTTP协议的请求方法,如使用<limit GET> 限制HTTP协议中的GET方法,<limit POST>限制http协议中的POST方法,使用</limit>标识这个控制段的结束。对于一般的情况,可以对大部分客户打开 GET、POST和HEAD 请求,而关闭PUT、DELETE等其他更复杂且不常用的请求。

  如果在.htaccess中没有使用Limit语句指定具体的访问方法,那么就表示访问控制命令将对所有的请求方法都进行控制。

  Order定义服务器查询访问控制的顺序,当设置为Order Allow, Deny的时候将先处理Allow 语句,再处理Deny语句。Order Deny, Allow的处理顺序相反。由于这两种不同的方式代表不同的访问控制策略,Order deny, allow和deny from all合作,是用于只允许设置过的客户机访问服务器,而Order allow, deny和allow from all合作,是允许所有的客户机访问,而仅仅屏蔽部分具有恶意的网络地址。

  在每个Allow或Deny命令中,可以使用域名(从后向前匹配)、IP(从前向后匹配),all(代表所有主机)来标识Internet上的计算机。这里是一个例子:

order deny, allow
deny from all
allow from 192.168.1.
allow from example.org.cn
allow from 127.
回复

使用道具 举报

 楼主| 发表于 2006-3-11 10:09:07 | 显示全部楼层
已解决!谢谢!!
回复

使用道具 举报

发表于 2006-3-30 23:28:01 | 显示全部楼层
我也遇到同样问题.请问兄台具体是如何解决的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-2-12 23:02 , Processed in 0.039810 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表