URL重定向规则问题中的BackReferences,R1,R2

时间:2012-05-16 16:49:26

标签: regex url-rewriting iis-7.5 url-redirection

我试图寻找有关背部参考的更多信息。但我发现的并不是很清楚。所以我真的很困惑。我在web.config

中有这个
  <system.webServer>
<rewrite>
  <rules>
    <clear />

    <rule name="CTVNews Articles" stopProcessing="true">
      <match url="(.*?)CTVNews(/?)(.*)" />
      <action type="Redirect" url="http://www.ctvnews.ca{R:2}{R:3}" appendQueryString="true" redirectType="Permanent" />
    </rule>

所以,我知道这是正则表达式的规则。这很容易理解,但是url =“http://www.ctvnews.ca/generic{R:2} {R:3}。”有人请解释什么是R2和R3?为什么我们有R2,R3,而不是R1和R2?

所有帮助都非常感谢。

1 个答案:

答案 0 :(得分:2)

在您提供的XML片段中,正则表达式有三个“捕获组” - 即使用括号(“(”和“)”)。这些“捕获”其中的任何内容,然后可以通过数字引用。从左到右编号,从1开始。

然后在上面的<action>标记中,{R:2}部分指的是正则表达式中捕获的组。有三个这样的组,但<action>仅使用第二个和第三个。第一个被捕获但未被使用。