[Frage] 404 führt zur Startseite [Gelöst] TYPO3-Version: 6.1.7

  • daFalk daFalk
    Padawan
    0 x
    62 Beiträge
    0 Hilfreiche Beiträge
    24. 03. 2014, 15:32

    Hallo,

    ich wusste nicht wo ich das Thema hinpacken sollte. Folgendes Problem:
    Ich habe eine normale page namens 404 angelegt. Dann habe ich im installtool den Wert bei PagNotFoundHandling auf "/404/" gesetzt. (mit und ohne Slashs probiert) Der Header war schon gesetzt.

    Sobald ich das getan habe führt die Eingabe einer nicht vorhandenen Seite sofort zur rootpage. Angezeigt wird immer die root der Standarfsprache. Ich habe auch probiert in der LocalConf folgenden Code einzufügen:

    1. if (preg_match('/\/en\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
    2. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '/en/404/';
    3. } else {
    4. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '/de/404/';
    5. }

    Hilft auch nix. Problem bleibt.

    Kennt das Problem jemand? Kann mir jemand einen TIP geben bitte? LG & DANKE, Falk

  • daFalk daFalk
    Padawan
    0 x
    62 Beiträge
    0 Hilfreiche Beiträge
    01. 04. 2014, 12:43 - Lösung

    vielen Dank für eure Tips!
    Ich habe es nun so gelöst:

    in meine pagenotfoundhandling.php habe ich:

    1. class user_pageNotFound {
    2. function pageNotFound($param, $ref) {
    3.  
    4. if (preg_match('/\/de\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
    5. header("HTTP/1.0 404 Not Found");
    6. header("Location: /de/404/");
    7. } else {
    8. header("HTTP/1.0 404 Not Found");
    9. header("Location: /en/404/");
    10. }
    11.  
    12. }
    13. }

    damit funktioniert die 404 aber noch nicht wenn eine falsche URL ohne Länderkürzel eingegeben wurde.
    Das umgehe ich, indem ich in der RealURL conf noch ein
    'noMatch' => 'bypass',
    eingefügt habe so dass immer ein Sprachkürzel angezeigt wird. Diese Lösung ist für mich annehmbar. Hoffentlich auch für den Kunden.:)

    BG, Falk


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    24. 03. 2014, 16:58

    Aus der Beschreibung im Install-Tool:
    "If prefixed with "REDIRECT:" it will redirect to the URL/script after the prefix."

    Also mal mit REDIRECT: /404/ probieren.

  • Velletti Velletti
    R2-D2
    0 x
    83 Beiträge
    3 Hilfreiche Beiträge
    26. 03. 2014, 10:37

    wenn "REDIRECT:" davor nicht hilft:

    ich hab das Pagenot Found setting in der RealURl.php. statt in der Localconf.php
    Evt. beisst sich das??

    PS: zudem setze ich das so : in Abhängigkeit der Domain und ob der User eingeloggt ist oder nicht (das zu unterscheiden scheitert aber in manchen Fällen am Caching) habe ich unterschiedliche 404 Seiten ..

    Zuerst einige "if" bzw. CASE schleifen wegen domain / ist eingeloggt ... um die PID zu setzen
    $pageNotFound_PID = xxx ;

    dann:

    Zitiert von: daFalk
    Hallo,

    1. if (preg_match('/\/en\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
    2. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'index.php?id=' . $pageNotFound_PID . "&L=1" ;
    3. } else {
    4. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'index.php?id=' . $pageNotFound_PID . "&L=1" ;
    5. }

    Typo3 seit 2010. Multilinguale (> 8 ) , Multi-Domain Installation aktuell unter 4.5.x LTS:
    Main used Extension: DAM, REAL URL, Powermail, tt_address, tt_news, cal, MM_forum (fork), Community (fork), Diversen eigenen extbase/Fluid extension

  • daFalk daFalk
    Padawan
    0 x
    62 Beiträge
    0 Hilfreiche Beiträge
    01. 04. 2014, 12:43

    vielen Dank für eure Tips!
    Ich habe es nun so gelöst:

    in meine pagenotfoundhandling.php habe ich:

    1. class user_pageNotFound {
    2. function pageNotFound($param, $ref) {
    3.  
    4. if (preg_match('/\/de\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
    5. header("HTTP/1.0 404 Not Found");
    6. header("Location: /de/404/");
    7. } else {
    8. header("HTTP/1.0 404 Not Found");
    9. header("Location: /en/404/");
    10. }
    11.  
    12. }
    13. }

    damit funktioniert die 404 aber noch nicht wenn eine falsche URL ohne Länderkürzel eingegeben wurde.
    Das umgehe ich, indem ich in der RealURL conf noch ein
    'noMatch' => 'bypass',
    eingefügt habe so dass immer ein Sprachkürzel angezeigt wird. Diese Lösung ist für mich annehmbar. Hoffentlich auch für den Kunden.:)

    BG, Falk

  • 1