Merkwürdiges Ergebnis, vermute ungewollte Rekursion

URLs umschreiben, umleiten, blocken oder sperren - all das und noch viel mehr kann mit mod_rewrite erreicht werden. Mit regulären Ausdrücken, Conditions und Rules stehst Du auf Kriegsfuss? mod_rewrite macht nicht das was Du willst, oder funktioniert gar nicht? hier bist Du richtig!

Moderatoren: Bob, Super-Mod

Merkwürdiges Ergebnis, vermute ungewollte Rekursion

Beitragvon Miikku » 16.03.2011 18:15

Hi!

Folgende Merkwürdigkeit:

#Test1:
Code: Alles auswählen
RewriteRule ^(.+)/([a-z]+)(\d+)$ a?b=$1?$2=$3 [QSA]

erzeugt aus "sonstwas/test2": "a?b=sonstwas?test=2"
#Test2:
Code: Alles auswählen
RewriteRule ^(.+)/([a-z]+)(\d+)$ $1?$2=$3 [QSA]

erzeugt aus "sonstwas/test2": "sonstwas/test2?test=2"

Kann mir jemand erklären, wie das Ergebnis aus Test2 zustande kommt?
Meiner Meinung nach müsste folgendes passieren:
"sonstwas" matcht auf "(.+)" => $1
"test" matcht auf "([a-z]+)" => $2
"2" matcht auf "(\d+)" => $3
Daraus ergibt sich unter Anwendung des Ergebnismusters $1?$2=$3: "sonstwas?test=2".
Nochmal kann man dann nicht matchen, allein schon, weil kein Slash mehr vorkommt und fertig.

Was ist mein Denkfehler? Oder ist das Ergebnis bei euch anders?
Ich finde irgendwie sieht es so aus, als wenn eine Rekursion stattfindet. Aber wie ich schon geschrieben hatte, sollte er ja eigentlich nur einmal matchen, weil ab dann kein Slash mehr da ist, der im Pattern aber zwingend gefordert wird.

Freue mich auf Hilfe,
mit freundlichen Grüßen,
Miikku
Miikku
.
.
 
Beiträge: 1
Registriert: 16.03.2011 16:45

Zurück zu mod_rewrite

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron