2012-11-26 57 views
2

我的重定向規則有問題。我想我的網頁將有「www」前綴。它可以在一些頁面上運行,而在其他頁面上則不會執行任何操作。這是我的規則:在IIS7上重寫無法正確使用「www」

<rule name="WWW Rewrite" enabled="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTP_HOST}" negate="true" 
      pattern="^www\.([.a-zA-Z0-9]+)$" /> 
     </conditions> 
     <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" 
     appendQueryString="true" redirectType="Permanent" /> 
    </rule> 

任何幫助將不勝感激!

+0

我錯了,是說你需要在Global.asax文件中實例化這個嗎? – TheGeekZn

回答

0

你可以試試這個^(WWW)?([A-ZA-Z0-9] +)$

,如果頁面犯規目前有將匹配 「WWW」。並且如果它確實或不合適,就應該匹配。

你需要編輯的行動,這拿起第二組 <action type="Redirect" url="http://www.{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />

+0

不行,所以我覺得我沒有給出所有的輸入。我的網站是https或http。所以當用戶嘗試導航到https://site.com時,請轉到https://wwww.site.com,如果用戶嘗試導航到http://site.com,則應該轉到http:// www .site.com ... ** site.com只是一個示例。 – user1853029

+0

你如何決定你想要去哪些網站,哪些去www.site.com? – EllisChadwick

0

這是你的規則,你只是愛檢查,如果你的主機不匹配,期望的主機,然後重定向到正確的網址。

<rules> 
    <rule name="Canonical Host Name" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" /> 
     </conditions> 
     <action type="Redirect" url="http://www.domain.com/{R:1}" redirectType="Permanent" /> 
    </rule> 
    </rules>