Standard 404-Fehlerseite bei fehlerhafter URL

Gesperrt
Putzi
Beiträge: 22
Registriert: Di 10. Mär 2009, 17:29
Kontaktdaten:

Standard 404-Fehlerseite bei fehlerhafter URL

Beitrag von Putzi » Fr 11. Dez 2009, 11:39

Hallo Zusammen,

ich habe mal wieder ein Problem (zugegeben ein sehr ungewöhnliches).
Meine Kundin möchte gerne, dass bei Eingabe einer fehlerhaften URL nicht auf die Startseite oder irgendeine andere in Contenido erstellte Seite weitergeleitet wird, sondern dass ein ganz normaler "404 - site not found" Fehler kommt. Ich bin mir vollkommen im Klaren, dass das ein dämlicher Wunsch ist und sich eigentlich jeder Webmaster wünscht Frust bei seinen Besuchern zu vermeiden und seine User nicht zu verlieren - nicht aber meine Kundin. Kunde ist König, sie will 404, also bekommt sie 404 - sobald ich weiß wie. ;)

Nun meine Frage:
Wie kann ich alles so umstellen, dass bei einer fehlerhaften URL ein stinknormaler "404 - site not found" Error kommt?

Ich nutze das AMR-Modul um den URLs einen sprechenderen Namen zu geben.
Ich hab es schon mit einem Eintrag in der .htaccess-Datei versucht:
RewriteRule ^?error=1$ - [L]
Das führt aber nur zu einem 500 - Internal Server Error

Vielen Dank für eure Hilfe, ich bin mit den Nerven langsam am Ende (nicht unbedingt wegen des Problems, sondern wegen der Kundin). ;)

LG,
Putzi

hatzfeld
Beiträge: 3
Registriert: Mi 9. Dez 2009, 16:52
Kontaktdaten:

Re: Standard 404-Fehlerseite bei fehlerhafter URL

Beitrag von hatzfeld » Sa 12. Dez 2009, 00:12

Putzi hat geschrieben:ich habe mal wieder ein Problem (zugegeben ein sehr ungewöhnliches).
Meine Kundin möchte gerne, dass bei Eingabe einer fehlerhaften URL nicht auf die Startseite oder irgendeine andere in Contenido erstellte Seite weitergeleitet wird, sondern dass ein ganz normaler "404 - site not found" Fehler kommt. Ich bin mir vollkommen im Klaren, dass das ein dämlicher Wunsch ist und sich eigentlich jeder Webmaster wünscht Frust bei seinen Besuchern zu vermeiden und seine User nicht zu verlieren - nicht aber meine Kundin. Kunde ist König, sie will 404, also bekommt sie 404 - sobald ich weiß wie. ;)
So ganz dämlich finde ich den Wunsch nicht - schließlich gibt es den http-Rückgabe-Code 404, der dem aufrufenden Client signalisiert, dass der URL falsch war. Und es kann negative Nebenwirkungen haben, wenn man auch auf falsche URLs "richtige" Daten herausgibt.

Einen Error 404 aber kann man mit Contenido erreichen, indem man ein spezielles Layout erstellt, das mit dieser Zeile beginnt:

Code: Alles auswählen

<?php header('HTTP/1.1 404 Not Found'); ?>
Dieses Layout (das bei Bedarf im Übrigen ja auch einfach vom Output einer normalen Fehlerseite übernommen werden kann) wird dann einem speziellen Template und darüber dann demjenigen Artikel zugewiesen, der über "Administration - Mandanten ..." als Fehlerseite konfiguriert wird. In AMR muss dann die Option "Bei ungültigen Artikeln zur Fehlerseite weiterleiten" aktiviert sein.

Unschön ist allerdings, dass vor dem Error 404 erst einmal eine Weiterleitung geschieht.
Putzi hat geschrieben:RewriteRule ^?error=1$ - [L]
Das kann m.E. nicht funktionieren; statt ^? müsstest Du \? schreiben, damit es keinen Error 500 gibt. Zielführend ist es allerdings auch dann nicht.

Grüße,
Hatzfeld

Putzi
Beiträge: 22
Registriert: Di 10. Mär 2009, 17:29
Kontaktdaten:

Re: Standard 404-Fehlerseite bei fehlerhafter URL

Beitrag von Putzi » Sa 12. Dez 2009, 11:51

Hallo hatzfeld,

vielen Dank für deine Antwort! :)
Du hast recht, daran hatte ich noch gar nicht gedacht.

Ich habe jetzt ein neues Layout, Template und einen Artikel damit angelegt und (eigentlich) entsprechend darauf umgeleitet. Das Häckchen beim AMR ist auch an - aber es funktioniert leider trotzdem nicht. :( Bei fehlerhafter Eingabe wird auf "?error=1" umgeleitet und es erscheint immer noch die Startseite.
Ich weiß echt nicht, was ich falsch mache. :(

Danke nochmal!

munkh.balidar_4fb
Beiträge: 10
Registriert: Mo 27. Jul 2009, 21:49
Kontaktdaten:

Re: Standard 404-Fehlerseite bei fehlerhafter URL

Beitrag von munkh.balidar_4fb » So 13. Dez 2009, 11:46

Versuch mal mit:

Code: Alles auswählen

	header("Location: HTTP/1.0 404 Not Found");
	exit();

Gesperrt