IIS URL 重寫 - 具有多個域
我有一個網站/應用程序,其中相同的頁面執行許多網站(取決於 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>