Hi David, 1 habe ich mir noch nicht ganz durchgedacht; ausser dem pageNotFoundHandling in der localconf kenne ich keinen Hook, der dafür zur Verfügung stehen könnte.
2 wäre über eine Extension an sich schon möglich, allerdings bekomme ich dann immer einen 404-Header. Lediglich der Inhalt der 404-Seite wird korrekt gezeigt. Das ganze ist eigentlich ein ziemlich gängiges Problem, sobald man einen Loginbereich hat, seltsam, dass es dafür noch gar keine Lösung im TER gibt, nicht mal eine veraltete. (Also zumindest finde ich keine :-) Ich werde es wohl mit einer Userfunc lösen, die über das Install-Tool geladen wird (pageNotFoundHandling). Man kann dort über die $param-Variable abfragen, ob es sich um eine interne Seite handelt und die Sprachparameter abfangen (substring "en" oder Sprachparameter "L"). Leider ist es prinzipiell nicht möglich, sowohl den richtigen Header zu senden (404 resp. 403) und danach auf die passenden Seiten weiterzuleiten, es geht immer nur entweder oder. Also muss der Content der Fehlerseite über file_get_contents oder CURL ausgegeben werden. Ausserdem muss die fe_user-Session irgendwie erhalten werden, sonst funktioniert das Login erst beim zweiten Aufruf. Falls es jemand brauchen kann: <?php define(LOGIN_URL, "http://mlvb.pl/aktuelles/login.html"); define(NOTFOUND_URL, "http://mlvb.pl/error.html"); class user_pageNotFound { function pageNotFound($param, $ref) { if ($param["pageAccessFailureReasons"]["fe_group"] != array(""=>0)) { $url = LOGIN_URL."?redirect_url=" . $param["currentUrl"]; header("HTTP/1.0 403 Forbidden"); } else { $url = NOTFOUND_URL; header("HTTP/1.0 404 Not Found"); } session_start(); $strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/'; session_write_close(); if (function_exists('curl_version') == "Enabled" ) { $contents = $this->curlGet($url,$strCookie); } else { $contents = @file_get_contents($url); if(!$contents) { $contents = 'please enable allow_url_fopen option or install cUrl!'; } } if ($contents) return $contents; else return FALSE; } function curlGet($url,$strCookie=""){ $curl = curl_init(); $timeout = 5; curl_setopt ($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_COOKIE, $strCookie); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, $timeout); $data = curl_exec($curl); curl_close($curl); return $data; } } ?> Das ist ein bisschen zusammengeklaut, von hier: http://blog.sitegefuehl.de/2011/09/02/typo3-404-handling-feuser-geschuetzter-bereich-und-die-mehrsprachigkeit/ und aus der Extension ws_404 Gruß Peter Am 27.05.2013 um 15:37 schrieb David Bruchmann <da...@bruchmann-web.de>: > Normalerweise müßte zur Login-seite gelinkt werden mit der eigentlichen URL > als parameter der tatsächlichen URL zur Weiterleitung. > > Ansonsten könnte man > 1) einen Hook nutzen der die Fehlermeldung abfängt und stattdessen ein > Login-Formular anzeigt - wichtig dabei: der 404 header sollte nicht gesendet > werden. > 2) auf eine spezielle Umleitungsseite linken, die per Erweiterung solche > Anfragen richtig interpretiert. > -- ----------------------------------------------- Peter Linzenkirchner Lisardo EDV-Beratung Katharinengasse 20, Rückgebäude, Eingang Bleigäßchen 5 86150 Augsburg Tel. +49-821-150565, Fax +49-821-150595 http://typo3-lisardo.de i...@lisardo.de ----------------------------------------------- -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: http://www.typo3-lisardo.de Facebook: http://tinyurl.com/lisardo-multimedia _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german