Htaccess-Http身份验证-为什么这个块会给我带来500错误


Htaccess - Http Authentication - Why is this block causing a 500 error for me?

我一直在阅读一本关于基于rest的身份验证的好教程。

我正试图将此作为访问网站cms(从可访问的web根目录中获取)的附加功能。

当used指向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程序来创建一个名为.htdestist.的文件

其内容如下:

testUser:Authentication Required:cd7h62051449100elk3c463eae6251f5

现在,在完成所有这些设置后,我按照上面提到的文章中的说明,尝试实现一个实例,即一旦用户单击其中包含href属性".login"的链接,他们就会被定向到我的cms(需要auth)。这是作者的解释:

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

现在,出于某种原因,当我试图在我的网站上加载任何页面时,在.htaccess中有这个块,我会得到一个500错误,而我实际上应该得到身份验证框?

但这是我感到困惑的地方,因为我认为这个块只会在用户用".login"href点击链接的情况下产生效果。。。

当身份验证有效时,我没有添加进一步的块来引导用户进入索引页,只有这个块和作者提到的两个额外的块。

有人能解释引起这种反应的原因吗?

根据error_log的内容,如果您使用的是Apache 2.2.x,请尝试将AuthDigestFile更改为AuthUserFile。根据操作系统的不同,您可能还会遇到文件路径差异;关注任何新的errorlog消息。

  1. 它真的是路径中的myDomain
  2. 500错误的原因被写入error_log文件。它是宇宙中唯一一个你能找到原因和解释的地方