dedlfix: Hilfe bei mod.rewrite-Modul

Beitrag lesen

Tach!

Meine .htaccess-Datei sieht folgendermaßen aus:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.)$ /index.php?page_url=$1
RewriteRule ^(.
)/$ /index.php?page_url=$1 [L]

  
RewriteConds gelten nur für die eine RewriteRule, vor der sie stehen.  
  

> xyz.de/impressum/ --> "/index.php"  
  
Die zweite Rule springt an. Dann gibt es einen internen Redirect, das passiert immer beim Rewriten. Nun hast du also aus dem /impressum/ ein /index.php?page\_url=impressum gemacht. Das wird nun von der ersten RewriteRule zu /index.php?page\_url=index.php umgeschrieben. Der Querystring ging verloren, der wird von der RewriteRule nicht berücksichtigt (aber mit QSA-Flag angehängt).  
  

> Wie kriege ich es nun hin, dass trotz des angehängten Slashs an eine URL kein Fehler ausgegeben wird, sondern die richtige page\_url?  
  
Ich würde alles mit  
  
  RewriteRule .\* /index.php  
  
(und den beiden RewriteConds davor) umschreiben und im Script $\_SERVER['REQUEST\_URI'] auswerten.  
  
  
dedlfix.