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:
if (preg_match('/\/en\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '/en/404/';
} else {
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '/de/404/';
}
Hilft auch nix. Problem bleibt.
Kennt das Problem jemand? Kann mir jemand einen TIP geben bitte? LG & DANKE, Falk
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.
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:
daFalk schriebHallo,
if (preg_match('/\/en\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'index.php?id=' . $pageNotFound_PID . "&L=1" ;
} else {
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'index.php?id=' . $pageNotFound_PID . "&L=1" ;
}
vielen Dank für eure Tips!
Ich habe es nun so gelöst:
in meine pagenotfoundhandling.php habe ich:
class user_pageNotFound {
function pageNotFound($param, $ref) {
if (preg_match('/\/de\//', $_SERVER['REQUEST_URI']) || $_GET['L'] == 1) {
header("HTTP/1.0 404 Not Found");
header("Location: /de/404/");
} else {
header("HTTP/1.0 404 Not Found");
header("Location: /en/404/");
}
}
}
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
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