0

我有以下重写规则:

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

当我的 URL 是: http: //www.somedomain.com/Tony

我得到以下结果:/MyPage.aspx?Name=Tony但我需要更改它以使其适用于这种类型的 URL: http: //www.somedomain.com/MemberPages/Tony

有人可以告诉我正则表达式应该是什么吗?不幸的是,我对正则表达式不太擅长,因此不胜感激。

谢谢,

托尼

4

2 回答 2

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
于 2011-01-11T22:25:32.887 回答
0

这适用于任何二级路径:

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

这适用于 /MemberPages/-前缀路径

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

于 2011-01-11T22:24:49.490 回答