PHP www-authenticate 基本弹出循环问题
PHP www-authenticate Basic Popup Loop Issue
这两天我试图在一个简单的示例代码中找到我的问题:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['REMOTE_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
Auth Popup 打开正常,我发送用户名和密码。但是弹出窗口一次又一次地打开。如果我取消弹出窗口,401 消息将正确显示。
我试图用
填充 .htaccess
RewriteRule ^(.*)$ index.php [E=REMOTE_USER:%{HTTP:Authorization},QSA,L]
但这并没有改变什么。感谢您提供解决此问题的任何想法!
您在 PHP 上使用什么堆栈?假设它是 PHP-CGI,请在您的 .htaccess 中尝试以下操作:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
确保 mod_rewrite
在服务器上可用并且 .htaccess 文件已解析(AllowOverride
必须设置为 httpd.conf
中的全部)。
根据您的基础架构,可能有某种代理会丢弃 auth-header。对于干净的测试环境,我推荐本地 Apache2 安装。像 xampp 这样的堆栈提供开箱即用的完整开发区域。
这两天我试图在一个简单的示例代码中找到我的问题:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['REMOTE_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
Auth Popup 打开正常,我发送用户名和密码。但是弹出窗口一次又一次地打开。如果我取消弹出窗口,401 消息将正确显示。
我试图用
填充 .htaccessRewriteRule ^(.*)$ index.php [E=REMOTE_USER:%{HTTP:Authorization},QSA,L]
但这并没有改变什么。感谢您提供解决此问题的任何想法!
您在 PHP 上使用什么堆栈?假设它是 PHP-CGI,请在您的 .htaccess 中尝试以下操作:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
确保 mod_rewrite
在服务器上可用并且 .htaccess 文件已解析(AllowOverride
必须设置为 httpd.conf
中的全部)。
根据您的基础架构,可能有某种代理会丢弃 auth-header。对于干净的测试环境,我推荐本地 Apache2 安装。像 xampp 这样的堆栈提供开箱即用的完整开发区域。