正则表达式将旧版Web应用程序重定向到IIS 7中的最新版本

时间:2013-06-26 11:02:44

标签: regex iis-7 url-rewriting

我最近发现了IIS7 + URL重写器,并尝试使用模式匹配来重定向请求。

我想将旧版本路径的所有请求重定向到最新版本路径。该版本附加到网站路径,并随每个版本递增,如下所示:

Website1RC1 --> Website2 --> ... to Website22RC15

上述路径中的每个部分:

Website = Fixed
1-100 = Always there
RC = Optional
1-100 = Optional

知道最新版本并知道版本是增量的,有没有办法让一个正则表达式匹配所有旧版本?我想要避免偏离的是表达最新版本的表达,否则它将以无限重定向结束。

1 个答案:

答案 0 :(得分:0)

我知道做这样的事情的唯一方法是使用分组机制,您可以在其中明确地将最新匹配与文字匹配匹配,并将其他匹配与通用表达式匹配。然后检查一般匹配的上下文,如下所示,演示here

^(?:(Website22RC15)|(Website1?\d{1,2}(?:RC)?1?\d{1,2}))$

我认为可能有一种消极的“向前看”和“向后看”能力的方式,但这似乎只能与您感兴趣之前或之后匹配不同的字符串一起使用。

顺便说一句,请注意,如果RC存在,通常无法区分两个整数。