2016-11-02 5 views
0

URL 재 작성 모듈과 ARR 3을 사용하여 IIS를 역방향 프록시로 구성했습니다. localhost에서 내 응용 프로그램으로 리디렉션하는 공개 도메인이 있습니다. 응용 프로그램이 다른 호스트로 리디렉션 될 때 예외가 발생했습니다. 예 :에 "https://www.google.com/search?q=url+rewrite+iis+arr+3" 브라우저를 리디렉션하는 호스팅 된 응용 프로그램이 framework.net 4.5 ASP 닷넷 MVC를 사용IIS URL 다시 작성 ARR 문제

실패 "http://localhost/search?q=url+rewrite+iis+arr+3" 보여줍니다. 응용 프로그램이 IIS 응용 프로그램 풀 구성에서 통합 파이프 라인을 사용하고 있습니다.

HTTP/1.1 302 Found 
Cache-Control: private 
Content-Length: 350 
Content-Type: text/html; charset=utf-8 
Location: http://localhost/search?q=url+rewrite+iis+arr+3 
Server: Microsoft-IIS/7.5 
X-Powered-By: ARR/3.0 
X-Powered-By: ASP.NET 
Date: Wed, 02 Nov 2016 16:39:18 GMT 

<html><head><title>Object moved</title></head><body> 
<h2>Object moved to <a href="https://www.google.com/search?q=url+rewrite+iis+arr+3">here</a>.</h2> 
</body></html> 

내 IIS의 설정 : 내가 할 수있는 경우 IIS.net 포럼에 milope하는

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="ReverseProxyInboundRule" stopProcessing="true"> 
        <match url="(.*)" /> 
        <action type="Rewrite" url="http://localhost/{R:1}" /> 
       </rule> 
      </rules> 
      <outboundRules> 
       <rule name="ReverseProxyOutboundRule1" preCondition="IsRedirection" stopProcessing="true"> 
        <match filterByTags="A" pattern="^http(.*)" negate="false" /> 
        <action type="None" /> 
       </rule> 
       <preConditions> 
        <preCondition name="IsRedirection"> 
         <add input="{RESPONSE_STATUS}" pattern="3[0-9][0-9]" /> 
        </preCondition> 
       </preConditions> 
      </outboundRules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

답변

0

덕분에 (모르는 피들러를 사용

, 내가 리디렉션에 다음과 같은 추적을 볼 수 있습니다 링크를 게시하십시오)

서버 수준의 응용 프로그램 요청 라우팅 캐시 기능에는 다음이 있습니다. 은 다음과 같은 링크입니다. 서버 프록시 설정 또는 그와 유사한 것입니다. 프록시 설정에서 응답 헤더의 호스트 다시 쓰기가 선택되어 있는지 확인하십시오. 그렇다면 외부 링크가 localhost로 이동하는 이유 일 수 있습니다.

이것은 나를 위해 일하고 내 리디렉션 문제를 해결했습니다.