---
title: "Anstatt 404 wird Rootpage angezeigt, Fehlkonfiguration?"
url: "https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration"
source: "typo3.net"
tags: ["Allgemein","Frage","RealURL","TYPO3 7","Weiterleitungen & 404"]
created: "2016-02-18"
last_reply: "2017-10-10"
replies: 4
solved: false
page: 1
pages: 1
lang: "de"
---

# Anstatt 404 wird Rootpage angezeigt, Fehlkonfiguration?

Allgemein · 4 Antworten · gestartet 2016-02-18

## Eröffnungsbeitrag

**xraysoft** · 2016-02-18 · [Beitrag #1](https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration/1)

Hallo zusammen,

ich habe folgendes Problem:
Sobald ich eine nicht vorhandene Seite in meinem TYPO3 aufrufe, bekomme ich anstatt der 404-Seite die Startseite (Rootpage) angezeigt. Als ich es ganz zu Beginn der Entwicklung konfiguriert habe, ging noch alles, aber irgendwann war der Wurm drin.

Kurz zur Ausgangssituation:
TYPO3 Version 7.6.2
RealUrl Version 2.22.1

Typoscirpt Setup

```typoscript
config {
  admPanel = 0
  disablePrefixComment = 1
  contentObjectExceptionHandler = 0
  spamProtectEmailAddresses = 2
  spamProtectEmailAddresses_atSubst = (at)
  doctype = html5
  xmlprologue = none
  linkVars = L
  xhtml_cleaning = all
  insertDmailerBoundaries = 1
  no_cache = 0
  sendCacheHeaders = 1
  uniqueLinkVars = 1
  sys_language_overlay = 1
  sys_language_mode = strict
  metaCharset = utf-8
  additionalHeaders = Content-Type:text/html;charset=utf-8
  simulateStaticDocuments = 0
  baseURL = http://xxx
  absRelPath = /
  prefixLocalAnchors = all
  tx_realurl_enable = 1
  removeDefaultJS = external
  inlineStyle2TempFile = 1
}
[globalVar = TSFE:id = 10]
  config.additionalHeaders = HTTP/1.1 404 Not Found
[global]

#######################
# Spracheinstellungen #
#######################
config.sys_language_uid = 0
config.language = de
config.htmlTag_langKey = de-DE
config.locale_all = de_DE.utf-8
page.meta.language = de

[globalVar = GP:L=1]
  config.sys_language_uid = 1
  config.language = en
  config.htmlTag_langKey = en
  config.locale_all = en_US.utf-8
  page.meta.language = en
[global]

[globalVar = GP:L=2]
  config.sys_language_uid = 2
  config.language = es
  config.htmlTag_langKey = es
  config.locale_all = es_ES.utf-8
  page.meta.language = es
[global]

[globalVar = GP:L=3]
  config.sys_language_uid = 3
  config.language = ru
  config.htmlTag_langKey = ru
  config.locale_all = ru_RU.utf-8
  page.meta.language = ru
[global]
```

realurl_conf.php

```php
$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment';
$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
  '_DEFAULT' => array(
    'init' => array(
      'enableCHashCache' => 1,
      'appendMissingSlash' => 'ifNotFile',
      'enableUrlDecodeCache' => 1,
      'enableUrlEncodeCache' => 1,
      'postVarSet_failureMode' => '',
    ),
    'redirects' => array(),
    'preVars' => array(
      array(
        'GETvar' => 'no_cache',
        'valueMap' => array(
          'nc' => 1,
        ),
        'noMatch' => 'bypass',
      ),
      array(
        'GETvar' => 'L',
        'valueMap' => array(
          'de' => '0',
          'en' => '1',
          'es' => '2',
          'ru' => '3',
        ),
        'valueDefault' => 'de',
        'noMatch' => 'bypass',
      ),
    ),
    'pagePath' => array(
      'type' => 'user',
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
      'spaceCharacter' => '-',
      'languageGetVar' => 'L',
      'expireDays' => 7,
      'rootpage_id' => 47,
      'firstHitPathCache' => 1,
    ),
    'fileName' => array(
      'defaultToHTMLsuffixOnPrev' => 1,
      'acceptHTMLsuffix' => 1,
      'index' => array(
        'print.html' => array(
          'keyValues' => array(
            'type' => 98,
          ),
        ),
        'rss.xml' => array(
          'keyValues' => array(
            'type' => 100,
          ),
        ),
        'rss091.xml' => array(
          'keyValues' => array(
            'type' => 101,
          ),
        ),
        'rdf.xml' => array(
          'keyValues' => array(
            'type' => 102,
          ),
        ),
        'atom.xml' => array(
          'keyValues' => array(
            'type' => 103,
          ),
        ),
      ),
    ),
    'fixedPostVars' => array(      
    ),
    'postVarSets' => array(
      '_DEFAULT' => array(
        'dateFilter' => array(
          array(
            'GETvar' => 'tx_news_pi1[overwriteDemand][year]',
          ),
          array(
            'GETvar' => 'tx_news_pi1[overwriteDemand][month]',
          ),
        ),
        'page' => array(
          array(
            'GETvar' => 'tx_news_pi1[@widget_0][currentPage]',
          ),
        ),
      ),
    ),
  ),
);
```

LocalConfiguration.php

```php
return [
    'BE' => [
        ...
    ],
    'DB' => [
        ...
    ],
    'EXT' => [
        'extConf' => [
            ...
        ],
    ],
    'EXTCONF' => [
        'lang' => [
            'availableLanguages' => [
                'de',
                'ru',
                'es',
            ],
        ],
    ],
    'FE' => [
        'compressionLevel' => '9',
        'debug' => false,
        'loginSecurityLevel' => 'rsa',
        'pageNotFound_handling' => 'USER_FUNCTION:fileadmin/templates/php/pageNotFoundHandling.php:user_pageNotFound->pageNotFound',
        'pageNotFound_handling_redirectPageID' => 10,
        'pageUnavailable_force' => '0',
        'versionNumberInFilename' => 'embed',
    ],
    'GFX' => [
        ...
    ],
    'HTTP' => [
        'adapter' => 'curl',
    ],
    'INSTALL' => [
        'wizardDone' => [
            ...
        ],
    ],
    'MAIL' => [
        ...
    ],
    'SYS' => [
        'UTF8filesystem' => '1',
        'belogErrorReporting' => '0',
        'caching' => [
            'cacheConfigurations' => [
                'extbase_object' => [
                    'backend' => 'TYPO3\\CMS\\Core\\Cache\\Backend\\ApcBackend',
                    'frontend' => 'TYPO3\\CMS\\Core\\Cache\\Frontend\\VariableFrontend',
                    'groups' => [
                        'system',
                    ],
                    'options' => [
                        'defaultLifetime' => 0,
                    ],
                ],
            ],
        ],
        'clearCacheSystem' => false,
        'curlUse' => '1',
        'devIPmask' => '',
        'displayErrors' => 0,
        'doNotCheckReferer' => '1',
        'enableDeprecationLog' => false,
        'exceptionalErrors' => 28674,
        'fileCreateMask' => '0644',
        'folderCreateMask' => '0755',
        'isInitialInstallationInProgress' => false,
        'phpTimeZone' => 'Europe/Berlin',
        'sqlDebug' => 0,
        'syslogErrorReporting' => '0',
        'systemLocale' => 'de_DE',
        'systemLogLevel' => 2,
        't3lib_cs_convMethod' => 'mbstring',
        't3lib_cs_utils' => 'mbstring',
        'textfile_ext' => 'txt,html,htm,css,tmpl,js,sql,xml,csv,xlf,yaml,t3s,ts',
    ],
];
```

Hab ich irgendwas vergessen, ich sehe es nicht.
Zur Vollständigkeit, meine Rootpage hat die ID 47 und meine 404-Seite die ID 10.

Hat irgendjemand einen Tipp oder Denkanstoß?

## Antworten

### [#2](https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration/2) · xraysoft · 2016-02-18

Sorry habe hier die Versionsnummer von RealUrl verwechselt.
Meine Version ist die 1.13.6
Und zur Vollständigkeit hier noch meine pageNotFoundHandling.php

```php
class user_pageNotFound {
  /**
   * Detect language and redirect to 404 error page
   *
   * @param array $params: "currentUrl", "reasonText" and "pageAccessFailureReasons"
   * @param object $tsfeObj: object type "tslib_fe"
   */
  function pageNotFound($params, $tsfeObj) {
    // get first realurl configuration array (important for multidomain)
    $realurlConf = array_shift($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl']);
    // look for language configuration
    foreach($realurlConf['preVars'] as $conf) {
      if($conf['GETvar'] == 'L') {
        foreach($conf['valueMap'] as $k => $v) {
          // we expect a part like "/de/" in requested url
          if(strpos($params['currentUrl'], '/' . $k . '/') !== false) {
            switch($v) {
              case 1:
                $tsfeObj->pageErrorHandler('/en/404.html');
                break;
              case 2:
                $tsfeObj->pageErrorHandler('/es/404.html');
                break;
              case 3:
                $tsfeObj->pageErrorHandler('/ru/404.html');
                break;
              default:
                $tsfeObj->pageErrorHandler('/404.html');
            }
          }
        }
      }
    }
    // handle default language
    $tsfeObj->pageErrorHandler('/404.html');
  }
}
```

### [#3](https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration/3) · xraysoft · 2016-02-19

Hat niemand eine Idee oder bin ich zu ungeduldig?

### [#4](https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration/4) · newbie12 · 2016-06-07

Hy xraysoft,
kann dir leider bei deinem Problem nicht weiterhelfen. Wollte bei meinem ähnlichen Problem jedoch nicht eigens einen neuen Beitrag aufmachen.

Bei mir macht er folgendes:
Gibt man www.domain.com/de/blabla ein, geht korrekt die 404 auf.
Gibt man www.domain.com/blabla ein, dann wird auf die Startseite umgeleitet und es wird ein 200 Status ausgegeben. Eigentlich müsste hier jedoch auch die 404er kommen.
Hat jemand schon mal etwas ähnliches beobachtet und eventuell einen Tipp für mich?

P.S. @xraysoft:
Hab bei mir in der LocalConfig.php beim pageNotFound_handling 'de/404/' stehen und funktioniert, bis auf das genannte Problem einwandfrei. Du rufst da eine Funktion auf? Darf ich denn fragen, wie die aussieht?
Und wird den sowohl 'pageNotFound_handling' als auch 'pageNotFound_handling_redirectPageID' benötigt? Meiner Erfahrung nach reicht das pageNotFound_handling aus.

L.G.

### [#5](https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration/5) · bennof · 2017-10-10

Kannst das Verhalten auch in AdditionalConfiguration.php hacken:

// Find first not empty url subpart (works for //de/blabla, /de/blabla, de/blabla etc.)
$firstUrlSubPart = current(array_filter(explode('/', $_SERVER['REQUEST_URI'])));

// Redirects for multiple roots / domains / subdomains
if (strpos($_SERVER['SERVER_NAME'], 'subdomain1') !== false) {

// Get redirect by language prefix
    switch ($firstUrlSubPart) {
        case 'de':  $redirect = '/de/404-subdomain1'; break;
        case 'fr':  $redirect = '/fr/404-subdomain1'; break;
        case 'en':  $redirect = '/en/404-subdomain1'; break;
        default:    $redirect = '/de/404-subdomain1'; break;
    }
}
else {
    switch ($firstUrlSubPart) {
        case 'chde': $redirect = '/chde/404'; break;
        case 'chfr':  $redirect = '/chfr/404'; break;
        case 'fr':  $redirect = '/fr/404'; break;
        case 'en':  $redirect = '/en/404'; break;
        default:    $redirect = '/en/404'; break;
    }
}

---

Quelle: „Anstatt 404 wird Rootpage angezeigt, Fehlkonfiguration?“, typo3.net, https://www.typo3.net/d/121955-anstatt-404-wird-rootpage-angezeigt-fehlkonfiguration
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
