Der Martin: Modrewrite vom Root in ein Unterverzeichnis

Beitrag lesen

Hallo,

»» Nein, es fügt wie Sven sagte nur den originalen Querystring wieder an - das kann man dann benutzen, wenn man einen (evtl.) original vorhandenen solchen lediglich erweitern möchte. Per Default, ohne dieses Flag, wird er nämlich "weggeschmissen".
Das verstehe ich immer noch nicht, könntest du mir das Bitte Anhand eines Beispiels erklären?

du möchtest ein Beispiel? Also gut, nehmen wir einen Ausschnitt aus einer .htaccess von mir:

~~~apache RewriteEngine on
  RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*) index.php?page=$1  [QSA,L]

  
Hier wird zunächst die Bedingung gestellt, dass der Request \*nicht\* auf eine existierende Datei oder ein existierendes Verzeichnis passen darf. Dann wird jeder Request /foo/bar auf index.php?page=/foo/bar umgeschrieben. Bis hierher ist das QSA-Flag noch unerheblich.  
Aber jetzt ruft jemand  
  
  /foo/bar?param=12  
  
auf. Ohne das QSA-Flag würde dieser Parameter ignoriert, weil durch die Rewrite Rule ein komplett neuer Query-String generiert wird. Mit diesem Flag wird der Query-String aus dem ursprünglichen Request aber wieder angehängt, so dass der Request intern auf  
  
  /index.php?page=/foo/bar&param=12  
  
landet. So kann ich also trotz der rewrite-Aktion noch URL-Parameter von außen übergeben, wenn ich das möchte.  
  
So long,  
 Martin  

-- 
Der Alptraum jedes Computers:  
"Mir war, als hätte ich gerade eine 2 gesehen."