Asp.net

IIS URL 重寫 - 具有多個域

  • January 25, 2016

我有一個網站/應用程序,其中相同的頁面執行許多網站(取決於 URL,頁面顯示不同的徽標/css/內容等)。我試圖強制每個網站域重定向到 www。域的版本。

我在 URL 重寫中使用了預設的規範規則,然後將匹配 URL 模式更改為:

(.*)

到:

(^domain*)

這樣它只會對非 www 執行此操作。目前域的版本並且不匹配所有域。

我的計劃是為使用系統將每個域重定向到 www 的每個域創建一個。版本。

當我在 IIS 中測試模式時,規則匹配(我認為)它應該這樣做。但是當我訪問該網站時,它不會重定向,它只是停留在非 www 上。版本。

有誰知道我哪裡出錯了,或者這是否可能?

謝謝J。

更新 以為我會嘗試給出更好的解釋:

我在 IIS 中有一個網站設置。本網站的頁面執行著許多相同類型的網站,每個網站的風格、標誌和產品都因網址而異。

所以說我在網站上設置了以下綁定:

www.domain1.com, domain1.com, www.domain2.com, domain2.com, www.domain3.com, domain3.com

該網站將提供一個外觀不同的網站,根據 URL 具有不同的內容、樣式等。

如果我隨後在 URL 重寫中使用預設的“規範域名”規則,則您必須選擇一個要轉發到的域,所以如果我選擇 www.domain1.com,它會添加規則:

<rewrite>
   <rules>
       <rule name="CanonicalHostNameRule1">
           <match url="(.*)" />
           <conditions>
               <add input="{HTTP_HOST}" pattern="^www\.domain1\.com$" negate="true" />
           </conditions>
           <action type="Redirect" url="http://www.domain1.com/{R:1}" />
       </rule>
     </rules>
</rewrite>

然後將所有內容轉發到 www.domain1.com。因此,如果使用者訪問 domain2.com 或 www.domain2.com,他們將被重定向到 www.domain1.com

我需要它以便人們被重定向如下:

domain1.com > www.domain1.com

domain2.com > www.domain2.com

domain3.com > www.domain3.com

在測試新網站以添加到現有網站時,我們將它們設置在子域上,因此我還要求子域繼續不被重定向。

但問題在於在同一個網站/web.config 文件中執行此操作。

嘗試以下操作(感謝 @Atashbahar 在https://stackoverflow.com/a/31955179/2664650):

<rewrite>
   <rules>
         <rule name="Add WWW" stopProcessing="true">
         <match url="^(.*)$" />
         <conditions>
            <add input="{HTTP_HOST}" pattern="^(?!www\.)(.*)$" />
         </conditions>
         <action type="Redirect" url="http://www.{C:0}{PATH_INFO}" redirectType="Permanent" />
      </rule>
   </rules>
</rewrite>

引用自:https://stackoverflow.com/questions/34881595