2013-03-14 74 views
1

在我的htaccess我有下面的代码,这是用来保存管理*区。 如果我提供了错误的用户名密码,它会弹出正确的用户名,但如果我按取消,我可以看到我的限制区域,而不是加载错误页面,出了什么问题?谢谢htpasswd正在绕过当点击取消

AuthName "Restricted Area" 
AuthType Basic 
AuthUserFile /home/mydirectory/.htpasswds/.htpasswd 
AuthGroupFile /dev/null 
<Files admin*> 
require valid-user 
</Files> 
+0

我无法验证您的观察结果。如果我使用您的示例作为.htaccess文件,它应该像它应该那样工作,即当我按取消时,它拒绝访问任何以admin开头的文件或目录。 – 2013-03-14 09:26:31

+0

感谢您的测试,但我面临的问题,也是在cpanel使用codeigniter。 – user969068 2013-03-14 12:11:46

+0

我不想暗示,你没有这个问题。只提供反馈意见,目前在简单的测试环境中,.htaccess是好的,这个问题可能在其他部分。 – 2013-03-14 12:15:02

回答

0

您的.htaccess不保护其他任何东西比管理*。

例如,如果您启用了自动索引选项,则它与模式不匹配(但例如将DirectoryIndex设置为adminindex)。

也许认证提示与页面(JS,CSS,图像,favicon)所需的资源相关,而不是页面本身。

您可以尝试使用curl或apache日志检查HTTP响应吗?

这可能会给你一个提示。

curl -vso/dev/null http://localhost/test/ 
+0

谢谢,我得到403响应,并再次提示用户名/密码,如果我按下确定没有提供用户名或用户名不正确,但当点击取消时,我可以看到保护区,它在本地主机上正常工作,但不在生产服务器上。 – user969068 2013-03-19 14:49:36

+0

您可以看一下AllowOverride指令,看看您的本地配置中是否有与生产服务器不同的东西? – Damien 2013-03-20 01:01:16

0

我有同样的问题。对我来说,问题是htaccess文件夹中的一个RewriteRule位于受密码保护的目录之上的一个目录中。

我解决了我的问题,将RewriteEngine关闭添加到我密码保护的文件夹中的htaccess顶部。

0

我发现,当父目录中存在.htaccess,但不存在于正在访问的实际目录中时,发生此行为。在正在访问的目录中放置另一个.htaccess文件会停止此行为。

相关问题