【发布时间】: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