2011-10-21 95 views

回答

8

以下URL重寫規則應該做你想要什麼:

<rewrite> 
    <rules> 
     <rule name="Redirect to port 444" stopProcessing="true"> 
      <match url="(.*)" /> 
      <conditions logicalGrouping="MatchAny"> 
       <add input="{HTTPS}" pattern="^ON$" negate="true" /> 
       <add input="{SERVER_PORT}" pattern="^444$" negate="true" /> 
      </conditions> 
      <action type="Redirect" url="https://sub.corp.com:444/{R:0}" /> 
     </rule> 
    </rules> 
</rewrite> 

它重定向到https://sub.corp.com:444 HTTPS時不爲ON時或端口號不是444的網站應該有綁定到80端口(帶HTTP),443(HTTPS用於標準SSL)和444(用HTTPS)來實現此功能。

+0

謝謝。還有一種情況,即有多個子域sub1和sub2。重定向需要知道要重寫的內容。 – roadsunknown

+0

將重定向操作中的URL替換爲:https:// {HTTP_HOST}:444/{R:0}' –

+0

@Marco Miltenburg我可以問問Marco爲什麼沒有使用這些不一樣,或者我錯過了一些東西。 –

1

馬可的解決方案工作正常,萬一有人想知道如何在IIS中應用此。 您將此項添加到web.config文件中。如果您在IIS中創建虛擬目錄,則選定的物理文件夾將創建一個web.config。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="Redirect to port 50443" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions logicalGrouping="MatchAny"> 
        <add input="{HTTPS}" pattern="^ON$" negate="true" /> 
        <add input="{SERVER_PORT}" pattern="^50443$" negate="true" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}:50443/{R:0}" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
</configuration> 
+0

看來你對iis重寫規則有很好的控制。我是這方面的新人。如果可能的話,請看看我的帖子,並分享您的寶貴答案。我的帖子鏈接是https://stackoverflow.com/questions/47474674/iis-rewrite-rule-change-my-current-aspx-page-hyperlink-href-wrong-way – Thomas