phpbb3 mit php als cgi: malformed header from script
Linux/OpenSource, PHP Februar 11th, 2008Wer sein phpbb3 zusammen mit einem PHP das über CGI angesprochen wird betreibt, kann eine oeberraschung erleben: Bilder funktionieren nicht richtig, und in der Logdatei tauchen Einträge der Form
malformed header from script. Bad header=Not Modified: file.php, referer:
auf. Die Lösung: die Zeile
header(‚Not Modified‘, true, 304);
ist zu ersetzen durch
header(„HTTP/1.1 304 Not Modified“, true, 304);
und anschließend klappt es korrekt. Der Hintergrund ist wohl, dass die andere Schreibweise im header Aufruf lediglich mit PHP als Apache Modul funktioniert, weil der Apache die kurz-Notation „Not Modified“ unterstützt, und daraus den RFC2616 konformen Header mit Status 304 macht.
Update:
Die korrekte Lösung sollte so aussehen – und das gilt wohl für alle, die vorhaben mit PHP conditional GETs zu unterstützen:
if (php_sapi_name()==’CGI‘)
{
header(„Status: 304 Not Modified“);
}
else
{
header(„HTTP/1.0 304 Not Modified“);
}
August 31st, 2008 at 10:37
Danke für den Beitrag, hat mir sehr geholfen. Aber irgendwie ist das schon komisch. Warum hätte man das bei PHP/Apache nicht einfach einheitlich machen können?