svenfinger: htaccess-Problem bei Umschreibung URL mit 3 Parametern

Beitrag lesen

Hi,

ich suche mir jetzt schon seit Tagen einen Ast ab, um eine Möglichkeit zu finden, meine URLs von

http://www.example.com/index.php?page=abc&sub=def&sub2=ghi

in

http://www.example.com/abc/def/ghi/

umzuschreiben.

Bisher sieht meine .htaccess Datei so aus:

Options +FollowSymLinks  
RewriteEngine on  
  
RewriteRule ^(.*)/$ ?page=$1  
RewriteRule ^(.*)/(.*)/$ ?page=$1&sub=$2  
RewriteRule ^(.*)/(.*)/(.*)/$ ?page=$1&sub=$2&sub2=$3

Es funktioniert insofern, dass ich URLs wie

http://www.example.com/abc/
http://www.example.com/def/
http://www.example.com/ghi/

aufrufen kann, sobald ich aber URLs wie

http://www.example.com/abc/def/
http://www.example.com/abc/def/ghi/

aufrufe, sehe ich anhand von print_r($_GET), dass der page-Parameter leer ist. Die zwei Sub-Parameter sind korrekt gefüllt.

Sobald ich die Zeile

RewriteRule ^(.*)/$ ?page=$1
bzw.
RewriteRule ^(.*)/(.*)/$ ?page=$1&sub=$2

auskommentiere, funkioniert zumindest die URL-Umschreibung

http://www.example.com/abc/def/
bzw.
http://www.example.com/abc/def/ghi/

aber nicht mehr http://www.example.com/abc/.

Das Verhalten ist ja an sich logisch. Es wird immer die erste RewriteRule genommen und interpretiert. Aber wie kann ich nun per RewriteCond(?) festlegen, wann er welche RewriteRule verwendet? Ist der Weg mit RewriteCond überhaupt der richtige, oder bin ich ganz auf dem falschen Dampfer mit meiner RewriteRule?