2011-01-11 99 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]