[TYPO3-german] 404 fehlerseite bei mehreren domains.
Marco Peemöller
listen at goto-marco.de
Fri Jul 27 21:12:00 CEST 2007
Hallo Christian,
Christian Wolff schrieb:
> Hallo liebe mailing liste,
>
> ich versuche gerade "schöne" 404 fehlerseiten zu erstellen.
> in meiner typo3 installation gibt es jedoch mehrer domains.
> und ich will natürlich für jede domain eine eigene fehlerseite.
> mit entsprechendem "look" and feel. wie gehe ich das am besten an?
Ich habe es mit realurl wie folgt gelöst: für jede Domain habe ich im
gleichen Pfad eine Fehlerseite angelegt.
Dann in die localconf.php:
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] =
'USER_FUNCTION:typo3conf/pageNotFoundHandling.php:user_pageNotFound->pageNotFound';
// Modified or inserted by TYPO3 Install
Tool.www.rampf-gruppe.de/de/error/';
$TYPO3_CONF_VARS['FE']['pageNotFound_handling_statheader'] = 'Status:
404 Not Found';
In die Datei pageNotFoundHandling.php dann folgendes (wobei ich mir
jetzt nicht sicher bin, muß vor der Weiterleitung explizit noch mal ein
404 gesendet werden oder reicht der pageNotFound_handling_statheader aus?)
<?php
ini_set("display_errors", 0);
class user_pageNotFound {
function pageNotFound($param,$ref) {
$referer = addslashes($_SERVER['HTTP_REFERER']);
$requri = $_SERVER['REQUEST_URI'];
$host = $_SERVER['HTTP_HOST'];
$rma = $_SERVER['REMOTE_ADDR'];
$ua = $_SERVER['HTTP_USER_AGENT'];
$reqm = $_SERVER['REQUEST_METHOD'];
$currentUrl = $param['currentUrl'];
$reasonText = $param['reasonText'];
$ref = var_export($ref, true);
//bei stehen die ersten beiden Zeichen in der URL für die Sprache
$lang = substr($param['currentUrl'], 1, 2);
$langOrig = $lang;
switch($lang) {
case "de":
case "en":
break;
default:
$lang = "de";
}
switch($host) {
//falls host-spezifisches etwas gemacht werden muß
case "subdomain.deinedomain.de":
$www = "";
break;
default:
$www = "www.";
}
$host = str_replace("www.", "", $host);
$message = "
Lang: $langOrig
Referer: $referer
Request Uri: $requri
Host: $host
currentUrl: $currentUrl
reasonText: $reasonText
User-Agent: $ua
Remote-Address: $rma
Request-Methoder: $reqm
";
//mail("deine at email.de", "Fehler", $message);
header("Location: http://$www$host/$lang/error/");
}
}
?>
Mit der Mailfunktion muss man vorsichtig sein, da müsste eigentlich noch
ein Floatcontrol (heißt das so? Also ein Kontrolle darüber, wie oft von
einem Client der Aufruf der Fehlerseite in kurzer Zeit kommt) mit
integriert werden. Hab mir mal damit kräftig ins eigene Bein geschossen
durch einen rekursiven Aufruf.. da wurden dann in kürzester Zeit
hunderte Mail verschickt
Viele Grüße
Marco
More information about the TYPO3-german
mailing list