Hallo ihr, mein nun doch schon älteres und damals gelöstes Problem möchte ich noch mal erweitern - also neu aufgreifen.
Folgendes hat sich geändert bzw soll erreicht werden:
Verschiedene Userseiten können über domain.de/username angesteuert werden.
Dies geht aktuell immer dann, wenn eine der folgenden Seiten geöffnet wird:
- domain.de/username
- domain.de/username/
- domain.de/username/dateien.php
Das ganze will ich nun aber noch wie folgt erweitern:
Wenn bestimmte Einträge aufgerufen werden, dann bisher über:
- domain.de/username/dateien.php?id=x
Nun soll dateien.php?id=x ersetzt werden durch:
- domain.de/username/3_eintrag.htm
Also immer wenn eine Zahl ($2) + _ + kennung ($3) + .htm aufgerufen wird soll das ganze umgeschrieben werden auf:
- domain.de/username/dateien.php?id=x&kennung=y
Das ganze funktioniert auch halbwegs mit folgendem Code:
Code: Alles auswählen
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/(.*)_(.*).htm$ article.php?user=$1&id=$2&kennung=$3 [QSA]
RewriteRule ^([^/]+)$ index.php?user=$1 [QSA]
RewriteRule ^([^/]+)/([^/]*)$ $2?user=$1 [QSA]
Richtig geht es allerdings nur, wenn ich diese Zeilte auskommentiere:
RewriteRule ^([^/]+)$ index.php?user=$1 [QSA]
Ich habe auch versucht mit dem L-Flag zu arbeiten um die Anweisung zu beenden. Auch ohne Erfolg:
RewriteRule ^([^/]+)/(.*)_(.*).htm$ article.php?user=$1&id=$2&kennung=$3 [QSA,L]
Wie muss ich vorgehen, damit wenn Regel 1 erfüllt ist Regel 2 nicht zutrifft ?
Vielen Dank für jede Hilfestellung.
EDIT: Ich habe gerade einfach mal die Reihenfolge geändert. Als ich vorhin getestet habe, hat das nicht wirklich etwas bewirkt ... Aber dann ging es doch... Heißt wenn ich nicht groß was übersehen habe, scheint es so zu funktionieren ?
Code: Alles auswählen
RewriteRule ^([^/]+)$ index.php?user=$1 [QSA]
RewriteRule ^([^/]+)/([^/]*)$ $2?user=$1 [QSA]
RewriteRule ^([^/]+)/(.*)_(.*).htm$ article.php?user=$1&id=$2&kennung=$3 [QSA]
Kommentare dazu? Kann man das irgend wie effektiver lösen? Oder wird es bei irgend einer Konstellation Fehler geben?