Regulären Ausdruck

430
Andrew K

Ich muss eine mod_rewrite-Regel schreiben, die der folgenden Zeichenfolge entspricht:

/modules/users/users/ae/ghwjzL9D2qpnPqv3FRY3JTZ48N 

Der einzige konstante Teil der Zeichenfolge ist /ae/.

Ich brauche einen regulären Ausdruck, um einen Teil der Zeichenfolge vorher /ae/und nachher /ae/abzufangen und entsprechend umzuleiten.

also so etwas

URL eingegeben: /modules/users/users/ae/ghwjzL9D2qpnPqv3FRY3JTZ48N

RewriteRule ^([a-z0-9\-\/])+\/ae\/([a-zA-z0-9])* $1/file.php?id=$2 

URL verarbeitet: /modules/users/users/file.php?id=$2

Bis jetzt bin ich in der Lage, die URL zu fangen, aber nicht die richtigen Variablen zu bekommen

0
Wahrscheinlich möchten Sie das "*" direkt hinter das "]", vor das ")" setzen. dh `` `… 0-9] *)` ``. Scott vor 5 Jahren 2

1 Antwort auf die Frage

0
Andrew K

ja du hast recht, ich musste es nur ein klein wenig anpassen:

^([a-zA-z0-9\/]+)\/ae\/([a-zA-z0-9]*) 
Der Grund ist natürlich, dass Sie zuerst eine Reihe von Zeichen zuordnen möchten und _die gesamte Reihe als eine Gruppe verwenden. (Sie möchten nicht, dass viele Gruppen aus jeweils einem einzelnen Zeichen bestehen!) Daher müssen die Gruppierungszeichen '(…)' den _ Whole_ Matcher umgeben, den Sie in die Variable einfügen möchten. grawity vor 5 Jahren 0