我最近发现了IIS7 + URL重写器,并尝试使用模式匹配来重定向请求。
我想将旧版本路径的所有请求重定向到最新版本路径。该版本附加到网站路径,并随每个版本递增,如下所示:
Website1RC1 --> Website2 --> ... to Website22RC15
上述路径中的每个部分:
Website = Fixed
1-100 = Always there
RC = Optional
1-100 = Optional
知道最新版本并知道版本是增量的,有没有办法让一个正则表达式匹配所有旧版本?我想要避免偏离的是表达最新版本的表达,否则它将以无限重定向结束。
答案 0 :(得分:0)
我知道做这样的事情的唯一方法是使用分组机制,您可以在其中明确地将最新匹配与文字匹配匹配,并将其他匹配与通用表达式匹配。然后检查一般匹配的上下文,如下所示,演示here:
^(?:(Website22RC15)|(Website1?\d{1,2}(?:RC)?1?\d{1,2}))$
我认为可能有一种消极的“向前看”和“向后看”能力的方式,但这似乎只能与您感兴趣之前或之后匹配不同的字符串一起使用。
顺便说一句,请注意,如果RC存在,通常无法区分两个整数。