Der Martin: Apache-Rewrite und PHP-Zugriff auf vorige URL

Beitrag lesen

Hi,

ich leite auf meiner Webseite sämtliche fehlerhaft eingegebenen URLs, (=zu denen es keine entsprechende Datei gibt) auf die Indexdatei index.php um.

warum das? Da wäre es einfacher und sinnvoller, ein 404-ErrorDocument festzulegen.

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule .*   /index.php [R=301]

  
Was bringt dich auf die Idee, Apache-Code als Perl zu taggen?  
Außerdem machst du hier kein Rewriting, sondern eine Umleitung, wie Andreas schon erwähnt hat. Du weist also den Client (Browser) an: Was du eigentlich willst, holst du dir bitte woanders ab. Der Client setzt daraufhin einen neue Request ab und holt sich die Ressource, die ihm empfohlen wurde. Vom vorherigen Request, der ja erfolglos beendet wurde, ist dann natürlich nichts mehr verfügbar.  
  
Deine Redirect-Lösung hat außerdem noch einen entscheidenden Nachteil für den Nutzer: Nach der Umleitung sieht er in der Browser-Adresszeile die URL des neuen Requests auf http://example.org/index.php anstatt des ursprünglich eingegebenen Ziels.  
  

> Frage: hat ein Profi eine Idee, wie ich das Ganze zum Zusammenspiel bringen kann?  
  
Ja. Nutze [ErrorDocument](http://httpd.apache.org/docs/2.2/mod/core.html#errordocument). Und gib da bitte einen lokalen Pfad an, keine HTTP-URL - sonst hast du nämlich doch wieder einen Redirect und bist keinen Schritt weiter als vorher.  
  
So long,  
 Martin  

-- 
Wer keiner Fliege etwas zuleide tut, darf sich nicht über die Maden im Fleisch wundern.  
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(