IIS URL 재 작성 {R : N} 설명


81

{R : N}의 목적을 이해하지 못했습니다. 사용할 때 사람이 명확히 주시겠습니까
{R:0}대를{R:1}

사용 예 :

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

{R : 1}을 사용하는 ScottGu를 보았습니다

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 링크를 살펴 보았지만 아래 정의를 충분히 이해하지 못했습니다.

조건 패턴에 대한 역 참조는 {C : N}으로 식별됩니다. 여기서 N은 0에서 9까지입니다. 규칙 패턴에 대한 역 참조는 {R : N}으로 식별되며 여기서 N은 0에서 9까지입니다. 두 유형의 역 참조에 대해 {R : 0} 및 {C : 0}은 일치하는 문자열을 포함합니다.

답변:


96

문서에 따라 :

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


9
누군가에게 도움이되는 경우에도 관련이 있고 매우 유용한 링크입니다. nicolas.guelpa.me/blog/2015/02/21/rewrite-redirect-iis.html
niki b

1
@niki b : 귀하의 블로그는 귀하가 명시 적으로 말하는 내용 때문에 많은 도움이되었습니다. " 중요 :이 규칙은 경로에만 적용됩니다. URL 이름이 속지 않도록하세요. (예 : example.com/test , 스키마와 도메인 이름은 "url"일치에 대해 무시됩니다.) "및" 리디렉션 (특히 301)을 디버깅 할 때 브라우저가이를 캐시하는 경향이 있으며 규칙을 변경할 때 좌절감을 유발할 수 있다는 점을 항상 기억하십시오. 일어난다… ". 혼란 스럽기 때문에 {R : X}를 사용하여 도메인 이름으로 예제를 수정하십시오. 규칙에 따라 액세스 할 수 없습니다.
Daniel Lobo

@DanielLobo 블로그가 당신을 도왔다 니 기쁩니다. 글을 쓰지 않았기 때문에 원하시면 블로거에게 직접 연락하실 수 있습니다. 그러나 사람들이 그것을 인식하도록 여기에서 지적한 것이 좋습니다.
niki b
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.