Htaccess - Http身份验证 - 为什么这个块会导致500错误?

时间:2012-01-29 16:16:45

标签: php http .htaccess authentication

我一直在阅读rest based authentication上看起来很好的教程。

我正在尝试将此作为访问网站cms的附加功能(由可访问的Web根目录提供)。

当使用指向cms索引时,我希望使用这种基本形式的身份验证。一旦用户导航到任何部分,那么我的默认php认证系统将启动,以便某些用户只能访问cms中的某些功能。

我不明白,这就是为什么以下代码块放在我的.htaccess文件中会导致整个网站产生500错误......

<Files .login>
AuthType Digest
AuthNAme "Authentication Required"
AuthDigestFile /usr/home/myDomain/includes/htpasswd/admin/.htdigest
Require valid-user
</Files>

我尝试过使用基本访问功能的类似测试,但我认为这种方法会更安全一些。虽然我使用apache的htpasswd.exe程序创建了一个.htpasswd文件,我可以用来验证基本访问。这工作正常,但我无法弄清楚如何通过.htaccess文件将此类型的身份验证应用于cms索引。

我已经开始使用apache中的htdigest.exe程序创建一个文件来创建一个名为.htdigest的文件。

其内容如下:

testUser:Authentication Required:cd7h62051449100elk3c463eae6251f5

现在,通过所有这些设置,我按照上述artice中的说明,尝试实现一个实例,一旦用户点击其中带有href属性“.login”的链接,它们将被定向到我的cms(需要auth)。这是作者的解释:

  

所以没有.login文件,它只是一个会触发的URL   身份验证,因为访问此URL需要用户   认证

现在出于某种原因,当我尝试在我的网站上加载任何页面时,在.htaccess中使用此块,我得到500错误,当我真的应该获得身份验证框?

但这是我感到困惑,因为我认为这个块只会在用户点击“.login”href的链接的情况下产生影响...

我没有添加进一步的块来在认证有效时将用户引导到索引页面,只是这个块,以及作者提到的两个附加块。

有人能够解释造成这种反应的原因吗?

2 个答案:

答案 0 :(得分:6)

根据error_log的说法,如果您使用的是Apache 2.2.x,请尝试将AuthDigestFile更改为AuthUserFile。您可能会遇到文件路径差异,具体取决于您的操作系统;按照任何新的error_log消息。

答案 1 :(得分:3)

  1. 在路径中是字面意思myDomain吗?
  2. 将500错误的原因写入error_log文件。它是宇宙中唯一可以找到原因和解释的地方。