2012-01-29 39 views
4

我一直在阅读什么似乎是一个很好的教程rest based authenticationHtaccess - Http验证 - 为什么这个块给我造成500错误?

我想使用此作为访问网站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

现在,这一切成立,我已按照提到条每页的指示,努力实现,即一旦用户点击了一个实例一个带有href属性“.login”的链接,它们直接指向我的cms(auth required)。这是交代由作者:

所以没有.login文件,它只是将触发 身份验证,因为访问该网址要求用户是 认证的URL。

现在,出于某种原因,当我尝试加载在我的网站的任何页面,此块在.htaccess,我得到一个500错误,当我实际上应该得到验证框?

但这是我很困惑,因为我相信这块将只能与“在.login的” href的链接用户点击的情况下的效果...

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

有人能够解释是什么导致了这种反应?

+2

服务器error_log说什么? – jcmeloni 2012-01-29 16:19:59

+0

这是一个Windows或Linux服务器?你提到“htpasswd.exe”这听起来像Windows,但AuthDigestFile路径看起来像一个Linux路径。另外,如果它是一个Linux服务器,文件是否在正确的位置? – 2012-01-29 16:22:17

+0

命令'AuthDigestFile'无效,可能是拼写错误或由未包含在服务器配置中的模块定义,引用者:http://www.myDomain.com /' – 2012-01-29 16:24:24

回答

6

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

+1

我刚刚发布,并且'AuthDigestProvider文件'可能会有用。 – 2012-01-29 16:31:20

+0

谢谢你,但这不会工作,因为我没有使用基本的身份验证类型,我使用所述的摘要类型。 – 2012-01-29 16:31:25

+0

@ dev-null-dweller请参阅帖子作者的引文“如果此指令被忽略或其值为空,则客户端应该 假定保护空间包含 响应服务器上的所有URI。” – 2012-01-29 16:32:51

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

您好,感谢您的输入,请参阅上面的意见,了解错误日志中突出显示的内容。不,它不是真正的“myDomain”它是我的实际域的名称。没有.com – 2012-01-29 16:28:24