Error404 Dokument
Sabine
- php
0 Tobias Kloth0 Patrick Canterino0 Sabine
1 MudGuard
Hallo,
wenn ich mit der .htaccess ein eigenes Error 404-Dokument festlege,
gibt mir dann der Server in einer globalen PHP-Variable die falsche Anforderung, d.h. den Dateinamen der Seite, die angefordert aber nicht gefunden wurde, zurück?
Ich entferne auf meiner Website diverse Seiten und möchte nun, wenn jemand versucht eine dieser gelöschten Seiten aufzurufen, eine Reaktion ausführen, die davon abhängt, welche Seite versucht wurde aufzurufen.
Habe ich mich verständlich ausgedrückt ? :-)
Gruß
Sabine
Hallo Sabine,
wenn ich mit der .htaccess ein eigenes Error 404-Dokument festlege,
gibt mir dann der Server in einer globalen PHP-Variable die falsche Anforderung, d.h. den Dateinamen der Seite, die angefordert aber nicht gefunden wurde, zurück?
ja, schau mal was $_SERVER['REQUEST_URI'] steht.
Grüße aus Nürnberg
Tobias
Hallo Sabine,
wenn ich mit der .htaccess ein eigenes Error 404-Dokument festlege,
gibt mir dann der Server in einer globalen PHP-Variable die falsche Anforderung, d.h. den Dateinamen der Seite, die angefordert aber nicht gefunden wurde, zurück?
Ich entferne auf meiner Website diverse Seiten und möchte nun, wenn jemand versucht eine dieser gelöschten Seiten aufzurufen, eine Reaktion ausführen, die davon abhängt, welche Seite versucht wurde aufzurufen.
Wie du genau das realisieren kannst, wird detailliert unter http://aktuell.de.selfhtml.org/tippstricks/php/alteurls/ beschrieben.
Die Variable heißt übrigens $_SERVER['REDIRECT_URL']
.
Viele Grüße
Patrick Canterino
Super! Genau das habe ich gesucht.
Danke euch
Hi,
wenn ich mit der .htaccess ein eigenes Error 404-Dokument festlege,
gibt mir dann der Server in einer globalen PHP-Variable die falsche Anforderung, d.h. den Dateinamen der Seite, die angefordert aber nicht gefunden wurde, zurück?
Das hängt davon ab, wie Du das ErrorDocument definierst.
Wenn es eine serverrelative URL ist (also mit / beginnt), sollte die Original-URL in REQUEST_URI stehen.
Wenn es eine absolute URL ist (http://...), dann wird dort die URL der Fehlerseite stehen (außerdem bekommt der Client dann keinen 404-Status gesendet).
cu,
Andreas
Hallo MudGuard.
Wenn es eine absolute URL ist (http://...), dann wird dort die URL der Fehlerseite stehen (außerdem bekommt der Client dann keinen 404-Status gesendet).
Kleine Nebenfrage: Sehe ich das richtig, dass es nicht möglich ist, den Response Header mittels PHP auszulesen?
Gruß, Ashura
Hi,
Wenn es eine absolute URL ist (http://...), dann wird dort die URL der Fehlerseite stehen (außerdem bekommt der Client dann keinen 404-Status gesendet).
Kleine Nebenfrage: Sehe ich das richtig, dass es nicht möglich ist, den Response Header mittels PHP auszulesen?
Der Response Header wird ja erst erzeugt vom PHP-Script.
Bei einer absoluten URL fürs ErrorDocument bekommt der Client aber zuerst einen location-Header zusammen mit einem der 30x-Statuscodes (statt des 404) und erst wenn der Client dann das in der location genannte Dokument anfordert, kommt die Error-Seite ins Spiel.
apache_response_headers könnte aber ggf. helfen.
cu,
Andreas
Hallo MudGuard.
apache_response_headers könnte aber ggf. helfen.
Daran habe ich mich schon versucht, aber bis auf 2 kleine Zeilen wird da nichts ausgegeben.
Die Funktion apache_lookup_uri()
ist da schon ausführlicher, gibt aber leider den Statuscode 200 zurück. (Logisch, das Errordokument wurde ja ordnungsgemäß gefunden.)
Schade eigentlich.
Gruß, Ashura