Если на сервере Apache работает с PHP через FastCGI, для использования становятся недоступными $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] , поскольку PHP просто больше не получает соответствующие значения от сервера. Для того, чтобы все-таки была возможность пользоваться этими переменными в скриптах с авторизацией через модуль Apache, придется кое-что дописать.

В файле .htaccess добавить правило rewrite (предполагается, что mod_rewrite подключен, а авторизация производится в файле admin.php):

RewriteRule admin.php - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

 

В файле admin.php перед проверкой $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'] добавляем считыватель:

if(preg_match('/Basic+(.*)$/i', $_SERVER['REDIRECT_HTTP_AUTHORIZATION'], $matches))
{
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6)));
}
Наверх