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}
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
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 referencyjnego9
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.
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