IIS URL重写{R:N}澄清

我无法理解{R:N}的用途。 任何人都可以请澄清何时使用
{R:0}{R:1}

用法示例:

 <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" /> 

我见过ScottGu使用{R:1}

http://weblogs.asp.net/scottgu/archive/2010/04/20/tip-trick-fix-common-seo-problems-using-the-url-rewrite-extension.aspx

而下面有{R:0}

http://weblogs.asp.net/owscott/archive/2009/11/27/iis-url-rewrite-rewriting-non-www-to-www.aspx

看看下面的IIS链接但是不能静下来消化下面的定义:

对条件模式的反向引用由{C:N}标识,其中N从0到9; 对于规则模式的反向引用由{R:N}标识,其中N从0到9.注意,对于这两种types的反向引用,{R:0}和{C:0}将包含匹配的string

根据文件:

使用ECMAScript模式语法时,可以通过将括号放在必须捕获反向引用的模式部分周围来创build反向引用。

因此,参考文档中的示例:

 ^(www\.)(.*)$ 

条件下使用inputstringwww.foo.com ,您将拥有:

 {C:0} - www.foo.com {C:1} - www. {C:2} - foo.com 

为了简单起见:

  • 从规则模式( <match url="..."> )使用{R:x}作为反向引用。
  • 从条件模式( <conditions><add input="{HTTP_HOST}" pattern="..."></conditions> )使用{C:x}作为反向引用。
  • 0引用包含整个inputstring
  • 1引用将包含匹配第一个括号()的模式的string的第一部分,第二2引用的第二部分等…直到参考数字9

注意:

使用“通配符”模式语法时,在模式中使用星号符号(*)时始终创build反向引用。 “?”时不会创build反向引用 在模式中使用。

http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Using_back-references_in_rewrite_rules