IIS URL 重写 {R:N} 说明

2024-01-03

我一直无法理解 {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(使用前将#替换为@)

IIS URL 重写 {R:N} 说明 的相关文章

随机推荐

  • C#,输出多个值的方法

    我正在使用c 我有一个输出多个值的方法 我知道out但这是一个引用类型 是否有与值类型等效的东西 但也可以从方法输出多个值 对于引用类型 值也会在方法之外发生更改 因此我想防止这种情况发生 out 我知道out但这是一个引用类型 不清楚你的
  • Python格式大小应用(将B转换为KB、MB、GB、TB)

    我正在尝试编写一个应用程序来将字节转换为 kb 到 mb 到 gb 到 tb 这是我到目前为止所拥有的 def size format b if b lt 1000 return i b B elif 1000 lt b lt 100000
  • 在 Postgresql 中,如何使用“At Time Zone”取消反转时区偏移

    我正在尝试了解 Postgresql 时区 但我似乎无法弄清楚这一点 EST 是美国的 东部标准时间 通常是UTC 5 http en wikipedia org wiki Eastern Time Zone 示例 1 基础测试 selec
  • QML WebEngineView 轻弹内容

    我正在尝试使用 QML 和 WebEngineView 组件使用 Ubuntu 14 04 制作一个简单的桌面网络浏览器 该应用程序将在带有触摸板的设备上运行 因此最好使 WebEngineView 中显示的内容可滑动 我尝试这样做 但它不
  • 为什么“