2016-10-03 5 views
0

웹 사이트의 하위 디렉터리에서 루트로 요청을 리디렉션하려고합니다. IIS에서 사용할 수있는 다시 쓰기 규칙 옵션이 있다는 것을 알고 있지만 URL을 일치시켜 다시 작성하는 방법을 모르겠습니다. 또 다른 문제는 웹 사이트에 2 개의 다른 호스트 이름을 사용하는 바인딩이 2 개 있으며 그 중 하나는 하위 디렉토리와 동일하다는 것입니다. 하위 디렉토리에 대한 요청을 웹 사이트의 루트로 리디렉션하려면 둘 다 필요합니다.IIS가 하위 디렉터리에서 루트로 리디렉션합니다.

http://host1/host2/abc --> http://host1/abc 
http://host1.domain.com/host2/abc --> http://host1.domain.com/abc 
http://host2/host2/abc --> http://host2/abc 
http://host2.domain.com/host2/abc --> http://host2.domain.com/abc 
http://anywebsitename/abc/host2/abc --> http://anywebsitename/abc/host2/abc 

참고 :

  • 'ABC'는 임의의 문자열이 될 수있다 (빈 문자열을 포함) 여기서

    가능한 입력 및 각각의 원하는 출력 목록이다.
  • 'host2'는 리터럴 상수입니다.
  • 'host2'하위 디렉토리는 루트 웹 사이트의 하위 페이지입니다.

답변

0

이것은 간단하지만 IIS의 Host1 (URL 다시 쓰기)에 적용해야합니다.

이 규칙을 당한다
<rule name="Rule to point host2-abc to host1-abc" stopProcessing="true"> 
    <match url="host2/abc" /> 
    <conditions logicalGrouping="MatchAll" rackAllCaptures="false" /> 
    <action type="Redirect" url="http://host1/abc" /> 
</rule> 

, (이미 IIS의 Host1 지역에있어) 그럼 그냥 호스트 2/ABC를 찾아 부모에 그 다시 리디렉션합니다. 이 규칙은 모든 예제에 적용 할 수 있습니다. 문제가 해결되면이 답변을 올바른 것으로 표시하십시오. 감사!

+0

'abc'는 임의의 문자열이 될 수 있으며 상수가 아닙니다. 클라이언트가 http : // host1/host2/abc에 요청을 보내면 http : // host1/abc로 리디렉션하고 싶지만 클라이언트가 http : // host1/host2/xyz에 요청을 보내면 http : // host1/xyz로 리디렉션합니다. 또한 rackallcaptures 속성 (인식 할 수없는 특성 'rackAllCaptures')을 포함 할 때 500.52 응답을 얻고 있습니다. – ovidiufelixb

+0

'trackallcaptures'로 수정했습니다. – ovidiufelixb

관련 문제