我一直无法理解 {R:N} 的目的。谁能澄清一下何时使用
{R:0}
vs. {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 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 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。请注意,对于两种类型的反向引用,{R:0} 和 {C:0} 将包含匹配的字符串
根据文档:
当使用 ECMAScript 模式语法时,可以使用反向引用
通过将括号括起来的模式部分来创建
必须捕获反向引用。
因此,以文档中的示例为例:
^(www\.)(.*)$
并使用输入字符串www.foo.com
in the 状况, 你将会拥有:
{C:0} - www.foo.com
{C:1} - www.
{C:2} - foo.com
为了简单起见:
-
{R:x}
用作规则模式的反向参考(<match url="...">
).
-
{C:x}
用作条件模式的反向参考(<conditions><add input="{HTTP_HOST}" pattern="..."></conditions>
)
- The
0
引用包含整个输入字符串
- The
1
引用将包含与第一个括号中的模式匹配的字符串的第一部分()
, the 2
参考第二个,依此类推...直到参考编号9
Note:
当使用“通配符”模式语法时,反向引用始终是
当模式中使用星号 (*) 时创建。不
当“?”时创建反向引用。用于模式中。
http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Using_back-references_in_rewrite_rules http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Using_back-references_in_rewrite_rules
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)