IIS URL Rewrite {R: N} Wyjaśnienie

Nie byłem w stanie zrozumieć celu {R:N}. Czy ktoś mógłby wyjaśnić, kiedy używać
{R:0} vs. {R:1}

Przykład użycia:

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

Widziałem ScottGu używając {R: 1}

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

Natomiast poniżej znajduje się {R: 0}

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

Spojrzałem na poniższy link IIS, ale nie mogłem spokojnie przetrawić poniższej definicji:

Back-odwołania do wzorców warunków są identyfikowane przez {C: N}, gdzie N jest od 0 do 9; back-odwołania do wzorców reguł są identyfikowane przez {R:N}, gdzie N jest od 0 do 9. Zauważ, że dla obu typów back-referencji, {r: 0} i {C: 0}, będzie zawierać dopasowany łańcuch

Author: Owen Blacker, 2013-06-08

1 answers

Zgodnie z dokumentacją:

Gdy używana jest składnia wzorca ECMAScript, back-reference może być utworzony przez umieszczenie nawiasu wokół Części wzoru, który musi uchwycić back-reference.

Więc biorąc przykład, który następuje w dokumentacji:

^(www\.)(.*)$

I używając ciągu wejściowego www.foo.com w Warunkach , będziesz miał:

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

Aby to uprościć:

  • {R:x} jest używany jako back reference od wzorca reguł (<match url="...">).
  • {C:x} jest używany jako odwołanie od wzorca warunku (<conditions><add input="{HTTP_HOST}" pattern="..."></conditions>)
  • Referencja 0 zawiera cały łańcuch wejściowy
  • odniesienie 1 będzie zawierało pierwszą część łańcucha pasującego do wzorca w pierwszym nawiasie (), 2 odniesienie do drugiego itd...do numeru referencyjnego 9

Uwaga:

Gdy używana jest składnia wzorca "Wildcard", back-references są zawsze utworzony, gdy we wzorze znajduje się symbol gwiazdki ( * ). Nie. back-references are created when "?"jest używany we wzorze.

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

 64
Author: cheesemacfly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-09 14:53:12