일부 IIS 리디렉션 규칙을 작동 시키려고 시도하는 벽돌 벽에 머리를 두드리는 소리가났습니다. 스택 오버플로와 IIS.net에서 검색하고 읽었지만 전혀 작동하지 않습니다.IIS 재 작성 모듈 - 유지 경로 및 쿼리 문자열을 리디렉션하지만 추가 쿼리 문자열 매개 변수를 추가하는 방법은 무엇입니까?
로컬 (실제) IIS에서 시도 중이므로 2.0 모듈을 다시 작성하고 복구를 시도했습니다. 내가 언급 한 것보다 더 많은 시간에 admin cmd 라인에서 iisreset을 수행했습니다.
내 호스트 파일에 my.test.com URL에 대해 127.0.0.1을 설정했습니다.
기존 경로와 쿼리 문자열 값이있는 경우 추가 매개 변수를 사용하여 하위 도메인 URL을 기본 도메인 URL로 리디렉션합니다. 웹 사이트의 루트 폴더에있는
I 설정 3 개 규칙을 다음과 같이
<system.webServer>
<rewrite>
<rules>
<rule name="PathAndQueryString" enabled="true" stopProcessing="true">
<match url="(/\w*)(\?\w*=\w*)([&\w*=\w*]*)" />
<action type="Redirect" url="https://www.test.com{R:1}{R:2}{R:3}&param=value" appendQueryString="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="my.test.com" />
</conditions>
</rule>
<rule name="Querstring" enabled="true" stopProcessing="true">
<match url="(\?\w*=\w*)([&\w*=\w*]*)" />
<action type="Redirect" url="https://www.test.com{R:1}{R:2}&param=value" appendQueryString="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="my.test.com" />
</conditions>
</rule>
<rule name="DomainOnly" enabled="true" stopProcessing="true">
<match url=".*" />
<action type="Redirect" url="https://www.test.com?param=value" appendQueryString="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="my.test.com" />
</conditions>
</rule>
</rules>
</rewrite>
</system.webServer>
불행하게도 패턴을 테스트하고 {R을 : X} 확인에도 불구하고 내가 사용이를 테스트 할 때 캡처이 올바른지 Edge, Chrome, Firefox 및 IE는 모두 IIS 규칙이없는 것처럼 작동합니다.
테스트 :
- https://my.test.com >>https://www.test.com?param=value
- https://my.test.com/SomePath >>https://www.test.com/SomePath
- https://my.test.com/SomePath?AParam=AValue >> 위의 테스트 작업의 https://www.test.com/SomePath?AParam=AValue¶m=value
없음, 그들은 리디렉션없이 제공받을 .
나는 또한 URL 패턴의 일부로 사용 된 조건 패턴을 넣으려고했지만 그 중 하나와도 작동하지 않는다. 사실 나는 규칙을 호스트의 포함하지 않는 사이트의 루트에 넣었을 때 여전히 아무것도 작동하지 않는다고 말하는 Stack Overflow 게시물을 읽은 후 조건으로 옮겼습니다.
도움을 주시면 감사하겠습니다.
UPDATE 1 경로 및 쿼리 문자열은 규칙 (/w \ *)이 패턴의 시작에서 굵은 부분을 제거하려. 아무런 효과가 없었습니다.
업데이트 2 : 기능을 "실패한 요청 추적"매우 변덕을 가능하게 시도하고 실제로 작동 될 때이 일치 URL 패턴 중 어느 것도 지금의 발로 시작했다 3 규칙을 제외하고, 일치되지 않는 것을 말한다 및 리다이렉트하지만 명백한 이유로 경로와 다른 쿼리 문자열 매개 변수를 유지 관리하지는 않습니다.
업데이트 3 : Edge 및 IE에서는 아무 규칙도 작동하지 않습니다. Chrome 및 FF에서는 리디렉션 만 작동하는 것처럼 보입니다. 그러나 도메인 만 규칙을 사용 중지하고 IIS를 다시 시작하면 규칙이 그대로 유지됩니다. FFS를 사용하면이 쓰레기가 내 피를 바로 끓이기 시작합니다. 그다지 어렵지 않아야합니다.