2010-01-11 3 views
5

IIS 7에서 실행되는 웹 사이트가 2 개의 도메인 (예 : & test.com)을 가리키는 포트 80에 바인딩되어 있습니다.URL 다시 쓰기 IIS 7 - URL 리디렉션이 작동하지 않습니다.

example.com은 정식 이름이므로 test.com을 방문한 클라이언트가 example.com으로 리디렉션되도록하고 싶습니다.

IIS 7 다시 쓰기 모듈을 사용하려고했습니다. 그러나 그것은 아무런 효과가없는 것 같습니다. 어떻게 문제를 해결할 수 있습니까?

다음은 web.config에 입력 한 규칙입니다.

답변

13

내가 잘못 생각했습니다. 이 할 수있는 방법입니다

<rule name="Canonical Host Name" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTP_HOST}" negate="true" pattern="^www\.example\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" /> 
</rule> 

심판 : http://blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx

+1

당신이 www.example.com에 example.com을 리디렉션과 같은 규칙을 HTTPS 및 HTTP 트래픽을 모두 잡을 싶다면? "http : // ..."로 리디렉션하지 않으려 고합니다. HTTP_HOST를 바꾸려고했지만 작동하지 않았습니다. 어떤 아이디어? –

+0

@ Dr. Zim하지만 왜 그렇게하고 싶습니까? Https는 로그인과 보안해야하는 기타 정보와 같은 보안 연결을위한 것입니다. 보안이 필요하지 않은 경우 Http를 사용하십시오. 왜 둘 다 사용 하시겠습니까? – Tristan

+0

저를 얻은 한 가지는 규칙 평가에 대한 입력이 사이트를 어디에서 관리하는지에 따라 달라질 수 있다고 생각했습니다. 예를 들어 원래 규칙을 한 수준에 중첩 적용한 경우 루트/기본 웹 사이트 수준으로 이동하면 원래 규칙을 적용 할 수 있습니다. – ossek