2011-01-11 75 views
0

我有以下重寫規則:幫助重寫規則

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

當我的網址的正常工作:http://www.somedomain.com/Tony

我得到以下結果:/MyPage.aspx?Name=Tony,但我需要改變它,所以它的工作原理與這種類型的URL:http://www.somedomain.com/MemberPages/Tony

有人可以告訴我什麼正則表達式應該是,不幸的是,我不是很正常表達式,所以任何幫助表示讚賞。

謝謝

託尼

+0

應該在哪裏http://www.somedomain.com/MemberPages/Tony重定向到,我的頁面的.aspx?名稱= MemberPages /託尼? – Zeki 2011-01-11 22:13:07

回答

1

如果你只是想,以便允許在MemberPages/,你可以做這樣的:

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

?意味着任選包括前面的元素,即使該元素是像(MemberPages/)一個完整的捕獲組。然後,您必須將後向引用更改爲$2以考慮其他捕獲組。

因此,這條規則將兩個網址的工作:

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

都將去:

/MyPage.aspx?Name=Tony 
0

這對於任何二級路徑工作:

重寫規則^/[^ /] + /([^?] +)$ /我的頁面的.aspx \?名稱= $ 1 [NC,L]

這將爲/ MemberPages/-prefixed路徑

重寫規則^/MemberPages /([^?.]+)$ /MyPage.aspx \工作? Name = $ 1 [NC,L]