Hallo Olaf,
Habt Ihr Erfahrungen, wie weit Scripts angepasst werden müssen, um unter beiden Konzepten zu laufen?
Mit (normalem) CGI funktioniert das Auslesen der HTTP-Auth-Daten nicht (d.h. PHP_AUTH_USER / PHP_AUTH_PASS stehen nicht zur Verfügung; den über normale .htaccess-Authentifizierung übertragenen Benutzer kann man jedoch per REMOTE_USER auslesen).
Status-Header müssen anders gesetzt werden. Bei PHP als Modul muss bspw. Header('HTTP/1.1 301 Moved Permanently'); gemacht werden während bei PHP als CGI Header('Status: 301 Moved Permanently'); notwendig ist. Ich mache das immer über den Code:
function setzeStatusHeader ($header) {
if (strtolower(php_sapi_name()) == 'cgi') {
Header('Status: ' . $header);
} else {
Header($_SERVER['SERVER_PROTOCOL'] . ' ' . $header);
}
}
// ...
setzeStatusHeader ('301 Moved Permanently');
Das fängt zwar nicht alles ab (d.h. andere Webserver könnte nochmal unterschiedliche Behandlung erwarten) - aber für den Apache klappt das ganz gut.
Viele Grüße,
Christian
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup