Komplexer Regulärer Ausdruck
Gero
- webserver
3 wahsaga
Hallo SelfHTML-Gemeinde,
ich will mit mod_rewrite die URLs "logisch verschönern".
Na klar, ich habe mir die entsprechenden Themen schon durchgelesen, nur scheitere ich an der Anfertigung des passenden regulären Ausdrucks. Die Ersetzung soll nach folgendem Muster geschehen:
http://test.com/ordner/unterordner/subunterordner/bezeichner.htm?parameter=wert¶meter2=wert2
Sollte ersetzt werden zu:
http://test.com/?a_1=ordner&a_2=unterordner&a_3=subunterordner&bez=bezeichner¶meter=wert¶meter2=wert2
So in etwa jedenfalls: Mein Problem nur aber: Die URL kann auch so aussehen (falls nämlich kein "subunterordner" besteht)
http://test.com/ordner/unterordner/bezeichner.htm
Wie gehe ich vor? Ich wäre sehr dankbar für eine Antwort.
Grüße,
Gero
hi,
Mein Problem nur aber: Die URL kann auch so aussehen (falls nämlich kein "subunterordner" besteht)
http://test.com/ordner/unterordner/bezeichner.htm
Wie gehe ich vor?
also ist der subordner optional.
optionale teile kennzeichnest du in regulären ausdrücken mit einem fragezeichen.
etwa so sollte das funktionieren (ungetestet):
RewriteRukle ^/([a-z]+)/([a-z]+)/([a-z]+/)?([a-z]+).htm$ /?a_1=$1&a_2=$2&a_3=$3&bez=$4 [qsa]
das flag qsa = query string append zum anhängen des originalen query strings.
ob der ausdruck mit / beginnen muss, hängt von einer eventuellen RewriteBase ab.
und ob das umleiten auf /?... klappt, weiß ich nicht. evtl. musst du den scriptnamen da doch angeben (schadet ja nix, ist ja eh nur intern, bekommt der benutzer nicht zu sehen).
gruß,
wahsaga