Mod Rewrite: mehrere Regeln definieren

Hey, ich hab ein kleines Mod Rewrite Problem. Ich möchte mehrere Regeln definieren, damit ein Link über 4 Regeln erreichbar ist.

Hier ein kleines Beispiel:

Ursprünglicher Link:

http://domain.de/index.php?site=login&lang=deErreichbar über:

http://domain.de/site/de/ http://domain.de/site/de http://domain.de/site/ http://domain.de/siteMeine jetzigen Regeln:

RewriteRule ^([^/]*)$ /index.php?site=$1 RewriteRule ^([^/]*)/$ /index.php?site=$1 RewriteRule ^([^/]*)/([^/]*)$ /index.php?site=$1&lang=$2 RewriteRule ^([^/]*)/([^/]*)/$ /index.php?site=$1&lang=$2 [L]Das Problem ist jetzt, dass nur die letzte der Regeln greift, bei allen anderen gibts nen 404-Error…

Ich muss dazusagen, dass ich bis jetzt noch nie mit Mod Rewrite gearbeitet habe…

[EDIT]

Jetzt gehts, woran es lag, weiß ich nicht, habe nichts verändert…

[EDIT]

Ich wollte die Regeln vereinfachen, jetzt gehts wieder nich…

RewriteEngine On RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?site=$1&lang=$2 [C] RewriteRule ^([^/]+)/?$ /index.php?site=$1 [L]

Der Aufruf von http://www.domain.de/login/de/ erzeugt einen 404 Error, der Aufruf von http://www.domain.de/login/ einen 500 Error…

Kennt jemand evtl. ein gutes Buch oder Tutorial in Bezug auf HyperText Access bzw. Mod Rewrite?

Oder kann mir jemand bei meinem obigen Problem helfen?

Danke =)

PS: Sorry für Doppelpost

Für einen ursprünglichen Wunsch würde das aus meiner Sicht genügen:

RewriteEngine On RewriteRule ^(.*)/(.*) /index.php?site=$1&lang=$2 [L] RewriteRule ^(.*) /index.php?site=$1 [L]

OK, danke, probier ich gleich aus, wenn ich zu Hause bin. Allerdings ist mir aufgefallen, dass das optimale Slash am Ende fehlt.

Also so:

RewriteEngine On RewriteRule ^(.*)/(.*)/? /index.php?site=$1&lang=$2 [L] RewriteRule ^(.*)/? /index.php?site=$1 [L][EDIT]

Also ich konnte es jetzt doch schnell testen, bei allen 4 Varianten, die URL aufzurufen, kommt ein 500 - Internal Server Error…

[EDIT 2]

Der Fehler konnt auch, wenn ich deinen Code unverändert in die .htaccess speichere…

[EDIT 3]

Also ich habe deinen Code nochmal genau angeschaut, statt dem [L] muss da ein [C] sein bei der ersten RewriteRule:

RewriteEngine On RewriteRule ^(.*)/(.*) /index.php?site=$1&lang=$2 [C] RewriteRule ^(.*) /index.php?site=$1 [L]Jetzt habe ich mir $_GET[‚site‘] und $_GET[‚lang‘] ausgeben lassen, wenn ich domain.de/site/lang/ aufrufe, kommt bei site ‚/index.php/de/‘ und bei lang nichts raus…

So, ich hab mich jetzt nochmal ein bisschen mit den Rewrite Conditions auseinandergesetzt und habe schließlich die Lösung gefunden. Für alle, die eine ähnliche Lösung suchen, hier der Code für die .htaccess:

[Code]RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([a-z0-9_-]+)/([a-z0-9_-]+)$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/([a-z0-9_-]+)/([a-z0-9_-]+)/$ [NC]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/?$ /index.php?site=$1&lang=$2 [NC,QSA]

RewriteCond %{REQUEST_URI} ^/([a-z0-9_-]+)$ [NC,OR]
RewriteCond %{REQUEST_URI} ^/([a-z0-9_-]+)/$ [NC]
RewriteRule ^([a-z0-9_-]+)/?$ /index.php?site=$1 [NC,QSA][/Code]

beziehungsweise zusammengefasst:

[Code]RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([a-z0-9_-]+)/([a-z0-9_-]+)/?$ [NC]
RewriteRule ^([a-z0-9_-]+)/([a-z0-9_-]+)/?$ /index.php?site=$1&lang=$2 [NC,QSA]

RewriteCond %{REQUEST_URI} ^/([a-z0-9_-]+)/?$ [NC]
RewriteRule ^([a-z0-9_-]+)/?$ /index.php?site=$1 [NC,QSA][/Code]

Timmer