[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