2011-01-11 5 views
0

私は次のRewriteRuleがありますヘルプ

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

私のURLである場合は正常に動作します:私は次のような結果を得るhttp://www.somedomain.com/Tony

/MyPage.aspx?Name=Tonyを私はそれが動作しますので、それを変更する必要がありますこのタイプのURL:http://www.somedomain.com/MemberPages/Tony

Regexpが何であるべきかを教えてもらえますか?残念ながら、私は正規表現にはあまりよくないので、どんな助けもありがとうございます。

は、これはどのような二次レベルのパスのために動作します

トニー

+0

http://www.somedomain.com/MemberPages/Tonyがマイページにリダイレクトする必要があります.aspx?Name = MemberPages/Tony? – Zeki

答えて

1

あなただけMemberPages/を許可任意にしたい場合は、このようにそれを行うことができます。

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

?は、必要に応じて、その要素が(MemberPages/)のような完全なキャプチャグループであっても、直前の要素が含まれることを意味します。次に、バックリファレンスを$2に変更して、追加のキャプチャグループを考慮する必要があります。

ので、このルールは、両方のURLのために動作します:

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

に行くだろう両方:

/MyPage.aspx?Name=Tony 
0

、ありがとう:

のRewriteRule ^/[^ /] + /([^?。] +)$ /マイページ.aspxの\?名前= $ 1 [NC、L]

これは/ MemberPages/-prefixedパス

のRewriteRule ^/MemberPages /([^?.]+)$ /MyPage.aspx \のために働くのだろうか?名前= $ 1 [NC、L]