2016-11-02 2 views
0

I konfigurierte IIS als Reverse Proxy mit URL Rewrite-Modul und ARR 3. Ich habe einen öffentlichen Bereich, die auf localhost zu meiner Anwendung umleiten. Es funktioniert ausgenommen fein, wenn die Anwendung auf einem anderen Host umleiten. dh: Umleitung zu "https://www.google.com/search?q=url+rewrite+iis+arr+3" Mein Browser zeigt "http://localhost/search?q=url+rewrite+iis+arr+3" dieIIS URL Rewrite ARR Ausgabe

Die gehostete Anwendung fehlschlägt verwendet Asp Net Mvc mit framework.net 4.5. Die Anwendung arbeitet mit integrierter Pipeline in der IIS-Anwendungspoolkonfiguration.

Mit Fiddler, kann ich die folgende Spur auf Umleitung sehen:

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> 

Meine IIS config:

<?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> 

Antwort

0

Dank auf IIS.net Forum milope (weiß nicht, ob ich das kann Veröffentlichen Sie den Link) für die folgende Lösung:

In der Server-Ebene Application Request Routing Cache-Funktion, dort ist ein Link, der lautet: Server-Proxy-Einstellungen oder so ähnlich. Überprüfen Sie, ob das Reverse-Rewrite-Host in Antwort-Header in den Proxy-Einstellungen aktiviert ist. Wenn dies der Fall ist, könnte dies der Grund dafür sein, dass externe Links zu localhost gehen.

Das funktionierte für mich und löste mein redirect Problem.