Hallo zusammen,
ich habe ein Problem mit der RealURL Extension.
Es geht um folgendes:
Auf meiner Seite arbeitet die Extension ohne Probleme, auch das 404-Fehler Handling funktioniert. Auf der Seite gibt es jedoch einen Bereich für Mitglieder(fe_user+newloginbox), sobald das Login-Formular aufgerufen wird, erhalte ich die 404-Seite. Komischerweise sendet der Server aber einen "200 OK"-Code. Auf Seiten die wirklich nicht da sind wird ordnungsgemäß ein 404 gesendet.
Realisiert habe ich das Handling wie folgt:
pageNotFound_Handling = USER_FUNCTION:typo3conf/pageNotFoundHandling.php:user_pageNotFound->pageNotFound
Hier die PHP Datei:
<?php
class user_pageNotFound {
function pageNotFound($param,$ref) {
header('HTTP/1.0 404 Not Found');
$host = '';
if(!empty($_SERVER['HTTP_X_FORWARDED_HOST'])){
$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
else if(!empty($_SERVER['HTTP_HOST'])){
$host = $_SERVER['HTTP_HOST'];
}
if (!empty($host)){
$page = $GLOBALS['_ENV']['REQUEST_URI'];
$english = array('englisch.example.com');
if (in_array($host,$english)) {
$msg = '
<h3>Sorry, the page <em> '. $page .' </em> you requested could not be found.</h3>
<p class="top_1"><a href="./">Here you can go to the home page of '. $host .' </a></p>
';
} else {
$msg = '
<h3>Die aufgerufene Seite <em> '. $page .' </em> existiert nicht oder wurde verschoben.</h3>
<p class="top_1"><a href="http://example.com">Hier geht es zur Startseite von '. $host .'</a></p>
';
}
$filename = "http://$host/404" ;
$handle = fopen($filename, "r");
if ($handle) {
$filecontent = '';
while (!feof($handle)) {
$filecontent .= fgets($handle, 4096);
}
fclose($handle);
$pagenotfound = str_replace('{msg}', $msg, $filecontent);
echo $pagenotfound;
} //if ($handle)
else echo '<h2>SCRIPT-ERROR: Error-File '.$filename.' cannot be found.</h2>';
}
else echo '<h2>SCRIPT-ERROR: No variable for the host (e.g. www.test.com) could be found.</h2>';
}
}
?>
Es wäre toll, wenn mir jemand auf die Sprünge helfen könnte :-)
Viele Grüße,
Christian