Gerade eben habe ich mich ein wenig mit einem PHP-Script herumgeärgert, welches per “Basic Authentication” die Nutzerdaten bekommen möchte. Da ich ein komplexes Setup aus Apache, mod_fcgid und PHP fahre, ging die normale Authentifizierung wie in mod_php leider nicht. Ein Hinweis auf php.net  behob die Problematik. Man legt zunächst eine .htaccess mit folgendem Inhalt an:

1
2
3
4
# PHP (CGI mode) HTTP Authorization with ModRewrite:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]

Im PHP-Script muss man nun folgendes vor der Benutzerprüfung eintragen:

1
2
3
4
5
6
if (isset($_SERVER['HTTP_AUTHORIZATION']))
{
 $ha = base64_decode( substr($_SERVER['HTTP_AUTHORIZATION'],6) );
 list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $ha);
 unset($ha);
}

Damit ist die Sache gegessen ;)

Wahlweise kann man, wie in den Kommentaren schon erwähnt, auch patchen. Hier  findet sich der patch ( Mirror von mir) und hier  die Diskussion dazu. Wahlweise hier  noch ein Thread dazu (Passender Patch)