realurl - individuelle Fehlerseiten [Gelöst]


  • 0 x
    02. 05. 2005, 11:03

    Hallo allerseits,

    wird eine falsche URL eingegeben, kommt ja die default Fehlermeldung von Typo3 in Verbindung mit realurl (Error. Reason: Segment "blablabla" was not a keyword for a postVarSet as expected!).

    Ich würde hier gerne eine individuelle 404 Seite einstellen oder auf die home-Seite verlinken.

    Wer kann mir sagen, wo ich ansetzen muss? In dem localconf array zur realurl extension, im ts template oder sonst irgendwo?

    Vielen Dank!
    Niki

  • 0 x
    84 Beiträge
    0 Hilfreiche Beiträge
    07. 04. 2006, 20:17 - Lösung

    Hi,

    die Weiterleitung auf die Hauptseite oder wie in meinem Falle auf eine Seite mit einem speziellen Hinweis und Links zu der Suchfunktion funktioniert in der Tat. Aber entscheidend ist an dieser Stelle, dass der Browser ein 404 zurückgeliefert bekommt. Ist dies der Fall? Kann ich das irgendwie prüfen?
    Im speziellen ist das wichtig für Suchmaschinen, wenn die bei jedem Murks auf die Fehlerseite geführt werden und keinen 404 dabei bekommen, so wird die Fehlerseite unter vielen Namen indiziert, nicht gerade schön...

    Leider ist in der Doku von error_404_handling nichts erwähnt, die Ext scheint aber auch nicht für realurl gebaut zu sein, das Problem ist ja, dass im Falle von Realurl aufgrund des mod_rewrites alles eine aus Apache-Sicht gültige Seite ist und ein 404 vom www-server somit nicht mehr kommen kann.

    Ideen dazu?

    Grüsse,
    Andreas


  • Holg Holg
    R2-D2
    0 x
    73 Beiträge
    0 Hilfreiche Beiträge
    01. 07. 2007, 23:21

    Das war ne Geburt:

    Also Probleme gibt es, wenn man mehr als 2 gleiche domains angelegt hat:

    Also z.B.

    meineseite.de
    http://www.meineseite.de
    sub.meineseite.de

    Dann steigt die Erweiterung error_404_handling aus, da beim Aufruf der Funktion pageNotFoundHandler() geprüft wird, ob nur ein Eintrag in sysdomain existiert.

    [code](...)

    // and if a page was found redirect...
    if (mysql_num_rows ($query_00) == 1 && $res_00['tx_404handling_404_redirectto']) {

    (...)

    [/code]

    Hier sieht man, dass wenn mehr als ein Eintrag existiert, die Bedingung false ist.

    Da aber weiter oben
    [code]

    $domain = preg_replace ("/^www\./", "", $host, 1);

    [/code]

    steht und somit aus http://www.meineseite.de ein meineseite.de wird und dann hier

    [code]

    $sql_00 = "
    SELECT
    tx_404handling_404_redirectto
    FROM
    sys_domain
    WHERE
    domainName
    REGEXP
    \"^http\:\/\/".$domain."|http\:\/\/www\.".$domain."|www\.".$domain."|".$domain."$\"
    ";

    [/code]

    die Domain in der SELECT Anweisung mit "http://www." "www." und alleine gesucht wird, gibt es in unserem Fall 3 Einträge:

    durch meineseite.de, http://www.meineseite.de und durch sub.meineseite.de
    Somit wird die Bedingung false und er steigt aus.

    Lösung: einfach in der Zeile 285 aus
    if (mysql_num_rows ($query_00) == 1 && $res_00['tx_404handling_404_redirectto']) {
    ein
    if (mysql_num_rows ($query_00) >= 1 && $res_00['tx_404handling_404_redirectto']) {
    machen

    Dann darauf achten, dass die Redirect-Error-Seite in jedem domain-Eintrag drin steht, da nicht sicher ist, welchen die Datenbank als erstes ausspuckt.

    So ich hoffe ich konnte noch jemandem anderen helfen und hab's einigermaßen erklärt.

    Ändern kann man die Datei übrigens im Extension-Manager unter "Edit Files", wenn man die Extension angeklickt hat.

    Ach ja, die Datei die geändert werden muss heißt:
    class.ux_tslib_fe.php

    Gruß
    Holger

  • SirRuddy SirRuddy
    R2-D2
    0 x
    119 Beiträge
    0 Hilfreiche Beiträge
    30. 03. 2010, 09:37

    Hallo liebe Gemeinde,

    dieser Fehler taucht bei mir auch noch (knapp 5 Jahre nach diesem Post) mit der aktuellen Typo3-Version auf. Wenn der Fall so einfach gelagert ist:

    Lösung: einfach in der Zeile 285 aus
    if (mysql_num_rows ($query_00) == 1 && $res_00['tx_404handling_404_redirectto']) {
    ein
    if (mysql_num_rows ($query_00) >= 1 && $res_00['tx_404handling_404_redirectto']) {
    machen

    Frage ich mich, warum der Fehler nicht längst offiziell "gebugfixed" ist?!

    Kann es sein, dass diese Änderungen andere ungewollte Effekte mit sich bringt, oder hat nur noch keiner in der Bugfix-Diskussion geposted?

    Kann mit jemand genaueres dazu sagen, ob das ein wirklich empfehlenswerte Lösung ist?

    Gruß
    SirRuddy