Apache 基本身份验证:为什么我使用正确的凭据却收到“HTTP 401 无效凭据”?

Apache 基本身份验证:为什么我使用正确的凭据却收到“HTTP 401 无效凭据”?

我的 vhost conf 文件中有以下设置:

  <Location / >
    AuthType Basic
    AuthUserFile /etc/apache2/.htpasswd
    AuthName "Please log in with your Apache username and password"
    Require valid-user
 </Location>

但是当我访问该网站并输入正确的凭据时,我看到一个空白页,仅显示“HTTP 401 无效凭据”。

我确信这些凭证是正确的,原因有二:

  1. 当我输入无意义的凭证时,身份验证弹出窗口会再次出现,提示我重试。但输入正确的凭证时,它不会再次出现。
  2. 当我尝试使用无意义的凭证时,我在访问日志中看到一条消息,提示“未找到用户 foo”。但是使用正确的凭证时,我看不到这条消息。

什么原因会导致这个问题?我正在进行 SSL 重定向,我想知道这会影响它吗?如果我可以提供更多信息来帮助您回答这个问题,请告诉我。谢谢!

编辑:通过 grep 搜索“无效凭证”,我发现问题是由 CiviCRM 和 Authx 扩展引起的。我接受了引导我找到这个问题的答案。

答案1

您收到 401 很可能不是因为凭据无效,而是因为您尝试访问某些不允许的内容:没有 index.html 且未Options +Indexes配置的文件夹。

尝试删除身份验证并重复相同的请求。或者尝试请求指定的文件,例如/favicon.ico

至于消息HTTP 401 Invalid credential,我相信您自己添加了它,因为默认错误页面显示的内容如下

Authentication required! or Unauthorized!
This server could not verify that you are authorized...

相关内容