2016-11-02 112 views
0

我使用Url重寫模塊和ARR 3將IIS配置爲反向代理。 我有一個公共域,它重定向到本地主機上的應用程序。 當應用程序重定向到另一個主機時,它工作正常。 即:重定向到「https://www.google.com/search?q=url+rewrite+iis+arr+3」 我的瀏覽器顯示「http://localhost/search?q=url+rewrite+iis+arr+3IIS網址重寫ARR問題

託管應用程序使用ASP網的mvc與framework.net 4.5哪個失敗。 該應用程序正在使用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配置:

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

由於milope上IIS.net論壇(不知道如果我能發佈鏈接)給我以下解決方案:

在服務器級應用程序請求路由緩存功能,有 是一個鏈接:服務器代理設置或類似的東西。 檢查 代理服務器設置中是否檢查了響應頭中的反向重寫主機。如果是這樣,這可能是爲什麼外部鏈接到本地​​主機。

這工作對我來說,解決了我的重定向問題。