hat jemand erfahrung mit webhosting bei 1und1?
ich hab nen kleines script auf einer seite laufen:
$modified_since = gmdate ( 'D, d M Y H:i:s', filemtime ( 'gaeste.txt' ) ).' GMT';
if ( $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $modified_since )
{
header ( "HTTP/1.1 304 Not Modified\r\n" );
exit;
}
header ( 'Last-Modified: '.$modified_since."\r\n" );
Das eigentlich 304 etc. korrekt behandeln sollte. deren webserver gibt mir dann aber immer ein 500 Interner Server fehler, das skript konnte nicht korrekt ausgeführt werden.
Haben die Probleme wenn man selber 304 per header verschickt?
Gehen sonstige PHP-Skripte? Wiel 500 klingt eigetnlich imemr mehr nach nem größeren Problem, wenn PHP erst läuft, dann meckert höchstens PHP selber mit ner HTML-fehlermeldung
Haben die Probleme wenn man selber 304 per header verschickt?
Ich denke eher, das ist das Problem bzw. das Privileg des Webservers.
Hast Du z.b. mal einen 404 versucht ?
Haben die Probleme wenn man selber 304 per header verschickt?
Ich denke eher, das ist das Problem bzw. das Privileg des Webservers.
Wieso? HTTP-Codes verschicken (insbesondere den 304-redirect) finde ich sollten Skripte auch amchen dürfen und nicht nur der Webserver. Und so eine beschränkung wäre mir auch ganz neu.
War 500 nicht "Access Denied"??
Ne, "Access Denied" ist meist 401.
500 is schon nen interner server fehler.
PHP skripte sonst gehen schon, und andere header wie "Bla: Blu" auch, nur der 304 will nicht.
Ok, das ist jetzt nur so ne Idee…
Header werden doch als erstes verschickt, oder?
Kann es sein, dass Du vor deinem Script da schon ein Stück Text überträgst (auch wenn es nur ein Leerzeichen ist)?
z.B. wenn man Sessions benutzt:
(jeweils erste Zeile der Datei)
<?php session_start(); ?> klappt
<?php session_start(); ?> klappt nicht, weil mit dem Leerzeichen der Header geschlossen wird.
Ok, das ist jetzt nur so ne Idee…
Header werden doch als erstes verschickt, oder?
Kann es sein, dass Du vor deinem Script da schon ein Stück Text überträgst (auch wenn es nur ein Leerzeichen ist)?
Selbst dann sollte der Webserver einen 200 OK davorsetzen und nicht einen 500 Internal Server Error. Außerdem meckert PHP dann selbst noch [img]
http://www.fb18.de/gfx/28.gif[/img].
@tekai: hast du eigentlich zugriff auf die logfiles? Beim 500er spricht die error.log immer ganz gut.
Selbst dann sollte der Webserver einen 200 OK davorsetzen und nicht einen 500 Internal Server Error. Außerdem meckert PHP dann selbst noch [img]http://www.fb18.de/gfx/28.gif[/img].
Auch wenn bei PHP die Warnungen aus sind? Wie reagiert der Webserver denn darauf, wenn er eine leere Datein ausliefern soll?
Macht er ohne Gnade… glaub mir. Fragt sich dann nur, was dein Browser aufgrund des ContentTypes damit anfängt…
Wenn schon vorher Daten ausgegeben wurden wird die Datei mit einer Warnung ausgeliefert:
Warning: Cannot add header information - headers already sent by …
Aber einen Internal server error (500) duerfte es nicht geben. Wenn php ohne header geht, dann schaetze ich dass 1und1 etwas restriktiv konfiguriert hat. Ansonsten stimmt irgendwas Grundseatzlich nicht.
/jr
Damit sind wir genausoweit wie am Anfang: Server meldet nur 500, andere Header (zb "Location: bla", "Irgendwas: nettes") gehen nur 304 will nicht, obwohl es zuhause geklappt hat.