it-swarm.com.de

IIS URL Rewrite {R: N} Erläuterung

Ich konnte den Zweck von {R: N} nicht verstehen. Könnte jemand bitte klären, wann zu verwenden
{R:0} vs. {R:1}

anwendungsbeispiel:

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

Ich habe gesehen, wie ScottGu {R: 1} verwendet

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

Während unten hat {R: 0}

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

Werfen Sie einen Blick auf den folgenden Link IIS), konnten die folgende Definition jedoch nicht ganz verdauen:

Rückverweise auf Bedingungsmuster sind mit {C: N} gekennzeichnet, wobei N zwischen 0 und 9 liegt; Rückverweise auf Regelmuster sind mit {R: N} gekennzeichnet, wobei N zwischen 0 und 9 liegt. Beachten Sie, dass {R: 0} und {C: 0} für beide Arten von Rückverweisen die übereinstimmende Zeichenfolge enthalten

61
Nil Pun

Gemäß der Dokumentation:

Wenn eine ECMAScript-Mustersyntax verwendet wird, kann ein Rückverweis erstellt werden, indem Klammern um den Teil des Musters gesetzt werden, der den Rückverweis erfassen muss.

Nehmen wir also das folgende Beispiel in der Dokumentation:

^(www\.)(.*)$

Und mit der Eingabezeichenfolge www.foo.com Unter den Bedingungen haben Sie:

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

Um es einfach zu machen:

  • {R:x} wird als Rückverweis aus dem Regelmuster verwendet (<match url="...">).
  • {C:x} wird als Rückverweis aus dem Konditionsmuster verwendet (<conditions><add input="{HTTP_Host}" pattern="..."></conditions>)
  • Das 0 reference enthält die gesamte Eingabezeichenfolge
  • Das 1 reference enthält den ersten Teil des Strings, der mit dem Muster in der ersten Klammer übereinstimmt (), das 2 die zweite referenzieren, etc ... bis zur referenznummer 9

Hinweis:

Wenn die Mustersyntax "Platzhalter" verwendet wird, werden die Rückverweise immer dann erstellt, wenn im Muster ein Sternsymbol (*) verwendet wird. Bei "?" Werden keine Rückverweise erstellt. wird im Muster verwendet.

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

77
cheesemacfly