404 error_doc redirect
tobi85
- php
- webserver
0 Der Martin
0 Mitleser0 tobi850 Der Martin
0 tobi850 Der Martin
0 tobi85
Hallo,
eine kurze Frage - ist es nicht möglich, bei einem 404 Fehler, einen 301 Redirect auszuführen? Ich hatte gerade alle möglichen Varianten überprüft, aber scheinbar blockt das der Browser.
Wenn es nicht geht - wäre ggf. ein Workaround über über eine Rewrite-Regel möglich?
Hi,
eine kurze Frage - ist es nicht möglich, bei einem 404 Fehler, einen 301 Redirect auszuführen?
sicher ist das möglich - aber ist es auch vernünftig? Wenn ich eine Ressource anfordere, die es nicht gibt, dann ist mir eigentlich am liebsten, wenn mir das klar mitgeteilt wird - über den Statuscode und einen kurzen Info-Text.
Es spricht allerdings nichts dagegen, auf dieser Fehlerseite ein paar Links anzubieten, so etwa im Stil von "Meinten Sie vielleicht ...?"
Ich hatte gerade alle möglichen Varianten überprüft, aber scheinbar blockt das der Browser.
Nein. Der kriegt gar nicht mit, was hinter den Kulissen läuft: Der Apache findet eine angeforderte Ressource nicht, greift ersatzweise nach seinem 404-ErrorDocument. Das ist zufällig ein PHP-Script, das seinerseits Status 301 und einen Location-Header setzt.
Was immer du gemacht hast, vermutlich war's irgendwo falsch. Da du nicht verrätst, wie du es gemacht hast, kann man dir auch nicht gezielt helfen.
So long,
Martin
eine kurze Frage - ist es nicht möglich, bei einem 404 Fehler, einen 301 Redirect auszuführen?
sicher ist das möglich - aber ist es auch vernünftig? Wenn ich eine Ressource anfordere, die es nicht gibt, dann ist mir eigentlich am liebsten, wenn mir das klar mitgeteilt wird - über den Statuscode und einen kurzen Info-Text.
Es spricht allerdings nichts dagegen, auf dieser Fehlerseite ein paar Links anzubieten, so etwa im Stil von "Meinten Sie vielleicht ...?"
+1. Genau das ist die "best practice" für unbekannte Ressourcenaufrufe. Sowohl für den User, wie auch Maschinen (z.B. Spider).
Anders sieht die Sache aus, wenn man für die Ressourcenanforderung "weiß", dass es einen neueren, aktuelleren Link gibt. Dann ist 301 das Mittel der Wahl. Ein Klassiker hierbei wäre die Umstellung eines Shops auf "sprechende" URIs. Alt: www.example.org/shop/article.php?id=4711. Neu: www.example.org/hundefutter-mit-biopansen. Den alten Ressourcenaufruf würde man dann via 301 auf den Neuen schicken wollen - sofern das System diese "Intelligenz" hergibt.
Hallo,
unser URL-Schema haben wir neu aufgebaut und ich möchte nun, dass in dem 404 Error-Doc geprüft wird, ob es einen neueren Link gibt. Wenn ja, soll dieser weitergeleitet werden.
Die Weiterleitung ist ja simpel und ich denke, falsch sollte diese nicht sein - oder?
Es geht aber leider nicht.
header("Location: $link", true, 301);
Mahlzeit,
unser URL-Schema haben wir neu aufgebaut und ich möchte nun, dass in dem 404 Error-Doc geprüft wird, ob es einen neueren Link gibt. Wenn ja, soll dieser weitergeleitet werden.
okay, das ist wohl ein sinnvoller Anwendungsfall.
header("Location: $link", true, 301);
Das sieht für sich genommen richtig aus, ist aber nur ein Bröckchen des Ganzen.
So long,
Martin
Hallo,
also mal ganz simpel, um Fehler auszuschließen
das ist meine PHP
header("Location: /");
exit;
In der NGINX-Conf steht es wie folgt
error_page 403 404 /errordoc.php;
Hi,
also mal ganz simpel, um Fehler auszuschließen
das ist meine PHP
header("Location: /"); exit;
und - wird das auch tatsächlich aufgerufen?
In der NGINX-Conf steht es wie folgt
Ah! kein gewöhnlicher Apache! Das hättest du aber von Anfang an sagen sollen, denn ich bin anhand der Indizien vom häufigsten Fall "Apache" ausgegangen.
error_page 403 404 /errordoc.php;
Ob das korrekt ist, kann ich natürlich nicht sagen, denn nginx kenn ich nur dem Namen nach.
So long,
Martin
Hallo,
habe nochmals etwas getestet. War eine NGINX Einstellung. So geht es
error_page 403 404 = @errorpage;
location @errorpage {
rewrite ^(.*)$ /errordoc.php;
}