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>