Hallo,
typo3 Vers. 4.0 mit REALURL
Die von REALURL "abgeworfene" Fehler Seite ist sehr schlicht und enthält keinen Link zur Startseite. Siehe: class.tx_realurl.php, function decodeSpURL_throw404($msg).
Die Extension error_404_handling lässt zwar domainbezogene Fehlerseiten zu, aber sie liefert immer einen 200 Header mit. Das finden Suchmaschinen nicht sooo gut.
Typo3 bietet aber von sich aus eine versteckte recht praktikable Möglichkeit an:
Im Installationstool All Configuration unter [pageNotFound_handling] eintragen:
[FE][pageNotFound_handling] = USER_FUNCTION:typo3conf/pageNotFoundHandling.php:user_pageNotFound->pageNotFound
[FE][pageNotFound_handling_statheader] = HTTP/1.0 404 Not Found
Im Verzeichnis typo3conf legt man die Seite pageNotFoundHandling.php mit folgendendem Inhalt an.
<?php
class user_pageNotFound {
function pageNotFound($param,$ref) {
$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
$reason = $param['reasonText'];
$msg = '
<h3>'.$reason.'</h3>
<p>Hier geht es zur <a href="./">Startseite</a> von '.$host.'</p>
';
$filename = "http://$host/error.html" ;
$filecontent = file_get_contents($filename);
$pagenotfound = str_replace('{msg}', $msg, $filecontent);
echo $pagenotfound;
}
}
?>
Nun legt man in Typo3 bei jeder Domain eine Seite mit dem Titel error an, und schreibt in einem HTML Seitenelement den Platzhalter {msg}. So ist es möglich, die Fehlerseite im Layout der jeweiligen Domain auszugeben.
Beispiel:
http://www.keine-gentechnik.de/test.html
http://www.bantam-mais.de/test.html
Die Lösung ist nicht ganz cool, aber sie funktioniert. Vielleicht ist sie ja nicht nur für unser Projekt nützlich. Verbesserungsvorschläge werden dankend entgegengenommen. ;-)
sunfish