Aclaración de reescritura de URL de IIS {R: N}


No he sido capaz de entender el propósito de {R:N}. Podría alguien por favor aclarar cuándo utilizar
{R:0} vs {R:1}

Ejemplo de uso:

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

He visto ScottGu usando {R: 1}

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

Considerando que, a continuación tiene {R: 0}

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

Eché un vistazo al enlace de IIS a continuación, pero no pudo digerir la definición a continuación:

Las referencias a patrones de condición se identifican por {C:N} donde N es de 0 a 9; las referencias a patrones de regla se identifican por {R:N} donde N es de 0 a 9. Tenga en cuenta que para ambos tipos de referencias retrospectivas, {R:0} y {C: 0}, contendrán la cadena coincidente

Author: Owen Blacker, 2013-06-08

1 answers

Según la documentación:

Cuando se utiliza una sintaxis de patrón ECMAScript, se puede creado poniendo paréntesis alrededor de la parte del patrón que debemos capturar la referencia.

Así que tomando el ejemplo que sigue en la documentación:

^(www\.)(.*)$

Y usando la cadena de entrada www.foo.com en las condiciones , tendrás:

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

Para hacerlo simple:

  • {R:x} se utiliza como referencia inversa del patrón de reglas (<match url="...">).
  • {C:x} se utiliza como referencia inversa del patrón de condición (<conditions><add input="{HTTP_HOST}" pattern="..."></conditions>)
  • La referencia 0 contiene toda la cadena de entrada
  • La referencia 1 contendrá la primera parte de la cadena que coincida con el patrón en el primer paréntesis (), la referencia 2 la segunda, etc...hasta el número de referencia 9

Nota:

Cuando se utiliza la sintaxis del patrón" comodín", las referencias retrospectivas son Siempre creado cuando se utiliza un símbolo de asterisco ( * ) en el patrón. No las referencias retrospectivas se crean cuando"?"se utiliza en el patrón.

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/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-09 14:53:12