【发布时间】:2020-05-24 06:48:42
【问题描述】:
我添加了一个使用 Apache 的 HTTP 基本身份验证,以使用 .htaccess 文件访问 PHP 应用程序:
AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
Require valid-user
这对于除了管理面板之外的大多数应用程序都可以正常工作。
因为为了访问管理面板,PHP 应用程序还通过向响应发送WWW-Authenticate HTTP 标头来提供自己的 HTTP 基本身份验证。
所以,当我尝试访问 PHP 应用程序安全区域时,我似乎遇到了 Apache 和 PHP 之间的 HTTP Basic 身份验证冲突。 (两者都单独正常工作)
我正在考虑的解决方案是仅在请求的页面尚未发送WWW-Authenticate 时启用 Apache HTTP Basic 身份验证。
我试过这个没有成功:
AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
<RequireAll>
Require valid-user
Require expr %{HTTP:WWW-Authenticate} =~ m#^$#
</RequireAll>
这会导致尝试进行身份验证的请求无限循环。 有没有可能?
【问题讨论】:
标签: php apache basic-authentication www-authenticate