Zum Inhalt springen

Problem mit RealURL, 404 und User Login

Erstellt am 18. Mai 2008 · 1 Antwort · letzte Antwort am 21. Mai 2008

Tags: RealURL, Weiterleitungen & 404, Frage

klark ·

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