Уточнение перезаписи URL-адреса IIS {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 ниже, но не мог спокойно переварить определение ниже:

Back-ссылки на шаблоны условий идентифицируются {C:N}, где N-от 0 до 9; back-ссылки на шаблон правила идентифицируются {R: N}, где N-от 0 до 9. Обратите внимание, что для обоих типов обратных ссылок {R: 0} и {C:0} будут содержать соответствующую строку

1 ответов


согласно документации:

когда используется синтаксис шаблона ECMAScript, может быть использована обратная ссылка создано путем установки круглых скобок вокруг части шаблона, которая необходимо захватить обратную ссылку.

Итак, взяв пример, который следует в документации:

^(www\.)(.*)$

и через входную строку www.foo.com на условия вас ждут:

{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>)
  • на 0 ссылка содержит всю входную строку
  • на 1 ссылка будет содержать первую часть строки, соответствующую шаблону в первой скобке () на 2 ссылка на второй и т. д...до номера ссылки 9

Примечание:

когда используется синтаксис шаблона" подстановочный знак", обратные ссылки всегда создается, когда в шаблоне используется символ звездочки ( * ). Нет обратные ссылки создаются, когда "?"используется в шаблоне.

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