我有以下RewriteRule:
RewriteRule ^/([^?.]+)$ /MyPage.aspx\?Name=$1 [NC,L]
当我的网址为:http://www.somedomain.com/Tony
时,该工作正常我得到以下结果:/MyPage.aspx?Name=Tony
但我需要更改它以便它适用于此类网址:http://www.somedomain.com/MemberPages/Tony
有人能告诉我Regexp应该是什么,不幸的是,我对正则表达式并不是很好,所以对任何帮助表示赞赏。
谢谢,
贝
答案 0 :(得分: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
答案 1 :(得分:0)
这适用于任何二级路径:
RewriteRule ^ / [^ /] + /([^ ?.] +)$ / MyPage.aspx \?Name = $ 1 [NC,L]
这适用于/ MemberPages / -prefixed路径
RewriteRule ^ / MemberPages /([^?.]+)$ /MyPage.aspx\?Name=$1 [NC,L]