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?