Iis

使用 IIS 管理器重寫 IIS

  • November 11, 2015

您好,我正在嘗試使用託管服務提供商給我的 IIS 管理器憑據進行適當的 IIS 重寫。我沒有這方面的經驗,到目前為止我在網上閱讀的文章並沒有太大幫助。

這是場景:我有一個 ASP.net MVC 5 網站(reallylongmaindomain.com為了便於閱讀),該網站實際上已上傳了文件。它使用 SSL 證書進行保護。我們分發的文獻有一個較短的域(不是 URL 縮短的域),我們稱之為shortdomain.com,它沒有任何文件。但是,如果您導航到**shortdomain.com**,則會收到 SSL 域名不匹配錯誤(準確地說是 ERR_CERT_COMMON_NAME_INVALID)。這是我需要避免的。

IIS 管理器進來了。我已成功登錄系統並添加了 URL Rewrite。這是我的規則:(http(s)?://)?(www.)?shortdomain.com。這會處理使用者可能放入地址欄中的任何**http/https和/或內容。www操作屬性設置為“重定向”(永久 301)並且重定向 URL 設置為https://reallylongmaindomain.com,但我仍然收到 SSL 證書錯誤並且視窗中的 URL 仍然是shortdomain.com**。

我確信我只是錯過了一兩件簡單的事情。我是否還需要將規則添加到我的 Web.Config 文件中?我的印像是 IIS 管理器規則取代了 Web.Config 規則。 編輯:該規則已添加到我的 web.config 中,這裡是:

   <rewrite>
       <rules>
           <rule name="site redirect" stopProcessing="true">
               <match url="(http(s)?://)?(www.)?shortdomain.com" />
               <action type="Redirect" url="https://reallylongmaindomain.com" />
           </rule>
       </rules>
   </rewrite>

謝謝!

原來這是我正在尋找的規則:

<rewrite>
   <rule name="redirect" stopProcessing="true">
       <match url=".*" />
       <conditions>
           <add input="{HTTP_HOST}" pattern="^(.*)?shortdomain.com" />                 
       </conditions>
       <action type="Redirect" url="https://reallylongmaindomain.com/{R:0}" />
   </rule>
</rewrite>

應用此規則後,導航到**shortdomain.com完美解析為https://reallylongmaindomain.com**.

希望這可以幫助其他人!

引用自:https://serverfault.com/questions/735688