【问题标题】:Htaccess - Http Authentication - Why is this block causing a 500 error for me?Htaccess - Http Authentication - 为什么这个块会导致我出现 500 错误?
【发布时间】:2025-12-15 17:05:02
【问题描述】:

我一直在阅读rest based authentication 上似乎不错的教程。

我正在尝试将其用作访问网站 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 程序来创建一个名为 .htdigest 的文件。

其内容如下:

testUser:Authentication Required:cd7h62051449100elk3c463eae6251f5

现在,完成所有这些设置后,我已按照上述文章中的说明进行操作,以尝试实现一个实例,即一旦用户单击其中带有 href 属性“.login”的链接,他们就会被定向到我的 cms(需要身份验证)。这是作者的解释:

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

现在由于某种原因,当我尝试在我的网站上加载任何页面时,使用 .htaccess 中的这个块,我得到一个 500 错误,我什么时候应该得到身份验证框?

但这是我很困惑,因为我认为这个块只会在用户点击带有“.login”href的链接的情况下才有效......

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

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

【问题讨论】:

  • 服务器的error_log说什么?
  • 这是 windows 还是 linux 服务器?您提到“htpasswd.exe”听起来像 Windows,但 AuthDigestFile 路径看起来像 linux 路径。另外,如果是linux服务器,文件在正确的位置吗?
  • 无效命令 'AuthDigestFile',可能拼写错误或由未包含在服务器配置中的模块定义,引用者:http://www.myDomain.com/
  • @jcmeloni Meloni,在日志中脱颖而出?
  • @magic bunnie 通过我的主机使用 apache 服务器,但我自己使用 windows,因此引用了 exe 文件。

标签: php http .htaccess authentication


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

【讨论】:

  • 您好,感谢您的输入,请参阅上面的我的 cmets,了解错误日志中突出的内容。不,它不是字面上的“myDomain”,它是我实际域的名称。没有 .com
【解决方案2】:

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

【讨论】:

  • 我正要发帖,AuthDigestProvider file 也可能有用。
  • 谢谢 jc,但这不起作用,因为我没有使用基本身份验证类型,我使用的是所述的摘要类型。
  • @dev-null-dweller 请参阅帖子作者的引用“如果省略此指令或其值为空,则客户端应假定保护空间由响应服务器上的所有 URI 组成。”
  • @BlackberryFan 我知道;请参阅wiki.apache.org/httpd/InvalidCommandAuthDigestFile(这是 2.2 中所做的更改)
  • @jcmeloni 天哪,我很谦虚:) 错误似乎消失了,不过需要一些时间来测试身份验证。我可以像&lt;Files ?login&gt; 那样使用它吗(注意get)?谢谢!
最近更新 更多