Zum Inhalt springen

Wie lege ich eine Fehlerseite fest?

Erstellt am 9. November 2005 · 16 Antworten · letzte Antwort am 22. Januar 2006

Tags: Weiterleitungen & 404, Frage

McPringle ·

Hallo,

wenn eine Seite abgerufen wird, die nicht oder nicht mehr existiert, möchte ich eine eigene Fehlerseite mit einem infotext und einer Sitemap sowie einer Suchfunktion anzeigen. Diese Seite gibt es und sie funktioniert. Doch wie erkläre ich Typo3, dass es diese Seite als Fehlerseite anzeigen soll?

Was habe ich gemacht?

Im Install-Tool habe ich folgende Optionen konfiguriert:

$TYPO3_CONF_VARS["SYS"]["recursiveDomainSearch"] = '1';
$TYPO3_CONF_VARS["BE"]["warning_email_addr"] = 'marcus@fihlon.de';
$TYPO3_CONF_VARS["FE"]["pageNotFound_handling"] = 'http://www.fihlon.de/404.php';

Die 404.php macht nur einen Redirect auf die entsprechende Typo3-Seite (mit kompletter Adresse). Diese Seite habe ich per [​i].htaccess[​i] als Fehlerseite des Apache festgelegt. Das funktioniert auch so weit: Der Apache führt beim Abruf einer nicht vorhandenen Datei einen Redirect auf die Fehlerseite durch. Wenn ich aber eine nicht existierende Typo3-Seite abrufe erscheint nur ein Typo3-Fehlertext über die fehlende Seite.

Dann habe ich die Extension [​i]error_404_handling[​i] installiert. Dadurch kann man im Domain-Record eine Fehlerseite angeben. Das habe ich auch gemacht, bei allen Domains. Trotzdem erhalte ich nur eine Typo3-Fehlermeldung: The requested page did not exist or was inaccessible. For this domain fihlon.de no error-page is defined. Please check the domain-records.. Den Cache habe ich gelehrt (sowohl von Typo3 wie vom Browser).

Was ist das Problem?

Beim Abruf einer nicht extierenden Typo3-Seite erscheint anstelle meiner in Typo3 selbst erstellten Fehlerseite nur ein Typo3-Hinweistext.

Was erwarte ich?

Ich möchte, dass beim Abruf einer nicht vorhandenen Typo3-Seite meine eigene in Typo3 erstellte Fehlerseite angezeigt wird.

Ich bin ratlos und weiß nicht, was ich noch kontrollieren soll. Hat jemand einen Tip für mich?

Gruß
Marcus

McPringle ·

Leider funktioniert das nicht! Wenn ich die mitgelieferte PHP-Datei laut Dokumentation in die .htaccess einbinde und teste, bekomme ich keinen Output und im PHP-Logfile nur die Meldung: PHP Fatal error: Call to a member function on a non-object in /home/f/fihlon.de/public_html/typo3/typo3_src-3.8.0/typo3/sysext/cms/tslib/class.tslib_fe.php on line 413

Wenn ich über Typo3 eine nicht existierende Seiten-ID abrufe, erhalte ich weiterhin die Typo3-Standardfehlerseite -- trotz korrektem Einrichten der Domain-Datensätze.

McPringle

Edit: Eine E-Mail erhalte ich, die Extension funktioniert also "prinzipiell"...

theo ·
McPringle schrieb

Leider funktioniert das nicht! Wenn ich die mitgelieferte PHP-Datei laut Dokumentation in die .htaccess einbinde

Lies es Dir doch bitte nochmal genau durch. Da steht nix vom einbinden der php-Datei in die .htaccess... 😉
...sondern vom kopieren der php-Datei ins rootverzeichnis und vom einbinden und anpassen einiger Zeilen der example-.htaccess in die original-.htaccess.

Zusatzfrage meinerseits, wenn wir eh schon gerade beim thema sind:

Wie zeigt man eigentlich den Referrer-Link auf der eigenen 404-Zielseite an?
Damit z.B. der "Vertipper" auch gleich sieht, wo er was wie falsch geschrieben hat?

McPringle ·
theo schrieb

einbinden der php-Datei in die .htaccess... 😉
...sondern vom kopieren der php-Datei ins rootverzeichnis und vom einbinden und anpassen einiger Zeilen der example-.htaccess in die original-.htaccess.

Genau das meinte ich mit "einbinden". In der .htaccess wird ein Verweis auf die PHP-Datei eingetragen. Doch alleine schon das funktioniert nicht! Siehe oben bereits gepostete Fehlermeldung aus dem PHP-Logfile...

McPringle

woida ·

@theo
mit

t3lib_div::getIndpEnv('HTTP_REFERER')

kannst du den Referer abfragen.

@McPringle
ich kenn die Ext zwar nicht, aber ich schätze mal, daß du das in der .htaccess das ErrorDocument 404 auf das PHP Skript setzt.
Wird deine .htaccess überhaupt ausgewertet?

Ich glaube Typo3 hat beim senden des 404-Headers einen Fehler, so daß er nicht korrekt verschickt wird: Setz mal im Install Tool
[pageNotFound_handling_statheader] auf

HTTP/1.0 404 Not Found
McPringle ·
woida schrieb

ich kenn die Ext zwar nicht, aber ich schätze mal, daß du das in der .htaccess das ErrorDocument 404 auf das PHP Skript setzt.
Wird deine .htaccess überhaupt ausgewertet?

Korrekt, das funktioniert auch. Nur das beim Plugin mitgelieferte PHP-Skript nicht -- es ruft Typo3-Interne Funktionen auf, die einen Fehler produzieren (PHP Fatal error: Call to a member function on a non-object in /home/f/fihlon.de/public_html/typo3/typo3_src-3.8.0/typo3/sysext/cms/tslib/class.tslib_fe.php on line 413)

woida schrieb

Ich glaube Typo3 hat beim senden des 404-Headers einen Fehler, so daß er nicht korrekt verschickt wird: Setz mal im Install Tool [pageNotFound_handling_statheader] auf

HTTP/1.0 404 Not Found

Getan, Caches geleert, keine Änderung...

Noch Tips?
McPringle

McPringle ·

Jetzt klappt es! Ohne die Extension! Einfach die Extension error_404_handling deinstallieren und im Install-Tool folgenden Eintrag vornehmen:

$TYPO3_CONF_VARS["FE"]["pageNotFound_handling"] = 'http://www.fihlon.de/404.php';
$TYPO3_CONF_VARS["FE"]["pageNotFound_handling_statheader"] = '';

Die PHP-Datei 404.php hat folgenden Inhalt (die 38 ist die Typo3-ID meiner Seite mit meiner Fehlermeldung und Sitemap):

<?php header('Location: http://www.fihlon.de/38.html'); ?>

Dann noch in der .htaccess Das Fehlerdokument setzen:

ErrorDocument 404 /404.php
ErrorDocument 500 /404.php

Wichtig: Das ErrorDocument muss nach den ReWrite-Regeln stehen!

Das ist dann auch schon alles und es funktioniert einwandfrei. Puh, das freut mich jetzt aber!

cu
McPringle

woida ·

Hab mir grad die error_404_handling angeschaut.
Die funktioniert anscheinend nicht mit simulate_static oder realurl.
Du wirst die EXT also nicht einsetzen können.

McPringle ·
woida schrieb

Hab mir grad die error_404_handling angeschaut.
Die funktioniert anscheinend nicht mit simulate_static oder realurl.
Du wirst die EXT also nicht einsetzen können.

Danke, ich habe es nun auch ohne die Extension hinbekommen! Siehe oben... 😃

cu
McPringle

woida ·
ArminB schrieb

moin,

ich habe auf meiner Site, http://www.cfs-info.de/ realurl und error_404_handling installiert. error_404_handling funktioniert ohne Probleme.

Armin

Das kann ich so jetzt nicht bestätigen: Du wirst zwar immer zu einer Fehlerseite geleitet, bekommst aber keinen 404er geliefert.

ArminB ·

moin,

nun sollte es klappen. Habe noch folgendes eingefügt für die Fehlerseite:

[PIDinRootline = 198]
config.additionalHeaders = HTTP/1.1 404 Not Found
[global]

Armin