2011-01-11 15 views
0

Ich habe folgende RewriteRule:Hilfe mit einer Rewrite-Regel

RewriteRule ^/([^?.]+)$ /MyPage.aspx\?Name=$1 [NC,L] 

die gut arbeitet, wenn meine URL lautet: http://www.somedomain.com/Tony

ich folgendes Ergebnis: /MyPage.aspx?Name=Tony aber ich brauche, es zu ändern, damit es funktioniert mit dieser Art von URL: http://www.somedomain.com/MemberPages/Tony

Kann mir jemand sagen, was die Regexp sein sollte, Leider bin ich nicht sehr gut mit Regular Expressions, so dass jede Hilfe geschätzt wird.

Danke,

Tony

+0

Wo soll http://www.somedomain.com/MemberPages/Tony Umleitung auf, MyPage .aspx? Name = MemberPages/Tony? – Zeki

Antwort

1

Wenn Sie wollen einfach nur MemberPages/ erlauben optional, können Sie es wie folgt tun:

RewriteRule ^/(MemberPages\/)?([^?.]+)$ /MyPage.aspx\?Name=$2 [NC,L] 

? Mittel optional das vorhergehende Element umfassen, auch wenn das Element eine vollständige Capture-Gruppe wie (MemberPages/) ist. Dann müssen Sie den Rückverweis auf $2 ändern, um die zusätzliche Erfassungsgruppe zu berücksichtigen.

So wird diese Regel für beide URLs arbeiten:

http://www.somedomain.com/Tony 
http://www.somedomain.com/MemberPages/Tony 

Werden beide gehen zu:

/MyPage.aspx?Name=Tony 
0

Dieses ist für jede der zweiten Ebene Pfad arbeiten:

RewriteRule ^/[^ /] +/([^ ?.] +) $/MyPage aspx? \ Name = $ 1 [NC, L]

Dies wird für/Member/-prefixed Pfade arbeiten

RewriteRule ^/Member /([^?.]+)$ /MyPage.aspx \? Name = $ 1 [NC, L]