Archive for the ‘PHP_AUTH_PW’ tag
PHP und HTTP AUTH bei 1und1 Webhosting
Um das Zend Framework in der Webhosting-Umgebung bei 1und1 ans Laufen zu bekommen, gibt es ein paar Kleinigkeiten zu beachten:
Als erstes muss man bei 1und1 in der .htaccess-Datei angeben welche PHP-Version man benutzen möchte. Dies macht man mit der Zeile
AddType x-mapp-php5 .php
Außerdem muß man noch die folgenden 2 Zeilen hinzufügen, sonst erhält man einen 500er Fehler:
Options -MultiViews RewriteBase /
Die RewriteBase gilt es natürlich anzupassen falls das Projekt über einen anderen Pfad erreicht werden muss.
Da PHP bei 1und1 als CGI läuft, muß man für die HTTP-Authentifizierung auch noch einen kleinen Workaround einbauen:
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Damit wird die Authentifizierungsinformation in die Variable $_SERVER[‚REDIRECT_HTTP_AUTHORIZATION‘] geschrieben. Das sieht dann ungefähr so aus:
echo $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; // Basic: d2lraTpwZWRpYQ==
Das ist die Base64-Darstellung von „Username:Passwort“.
Die entgültige .htaccess sieht dann so aus:
AddType x-mapp-php5 .php Options -MultiViews RewriteEngine On RewriteBase / # workaround for 1und1 php cgi mode RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Und so kommt man an Username + Passwort heran:
if (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6))); }