html — PHP www-authenticate Базовая проблема всплывающего цикла

Уже два дня я пытаюсь найти свою проблему в простом примере кода:

<?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 открывается нормально, я отправляю User и Password. Но всплывающее окно открывается снова и снова. Если я отменю всплывающее окно, сообщение 401 будет отображаться правильно.

Я пытался заполнить .htaccess с

RewriteRule ^(.*)$ index.php [E=REMOTE_USER:%{HTTP:Authorization},QSA,L]

Но это ничего не меняет. Спасибо за любые идеи, чтобы решить эту проблему!

1

Решение

Какой стек вы используете на PHP? Предполагая, что это PHP-CGI, попробуйте следующее в вашем .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

Удостоверься что mod_rewrite доступен на сервере и файлы .htaccess были проанализированы (AllowOverride должен быть установлен на всех в httpd.conf).

В зависимости от вашей инфраструктуры, может быть какой-то прокси, который отбрасывает заголовок аутентификации. Для чистой среды тестирования я рекомендую локальную установку Apache2. Стеки, как XAMPP обеспечить полное развитие областей из коробки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]