仅当响应页面没有自己的基本身份验证时才启用apache HTTP基本身份验证

问题描述 投票:1回答:1

[我使用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基本身份验证冲突。(两者均正常工作)

我正在考虑的解决方案是仅在请求的页面尚未发送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
1个回答
0
投票
我认为这不会起作用。添加Apache的身份验证方法时,除非您进行身份验证,否则该请求将停止。如果Apache尚未收到其自己层的身份验证详细信息,则您的PHP应用程序不会以任何方式运行。
© www.soinside.com 2019 - 2024. All rights reserved.