2013-02-07 62 views
1

下面是Web.config中將裸域重定向到www的部分。如何正確地將mysite.com重寫爲www.mysite.com,而不是其他的?

<system.webServer> 
<rewrite> 
    <rules> 
    <clear/> 
    <rule name="WWW Rewrite" enabled="true"> 
     <match url="(.*)"/> 
     <conditions> 
     <add input="{HTTP_HOST}" negate="true" pattern="^www\."/> 
     </conditions> 
     <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent"/> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 

問題是它也增加了的 'www' 的任何其它地址的前面,如:

  • 本地主機:62083 - > www.localhost:62083
  • static.mysite。 COM - > www.static.mysite.com
  • mysite.hostcompany.com - > www.mysite.hostcompany.com

我需要它重定向只有mysite.com,沒有別的。如何解決這個規則?

回答

3

我覺得你在想這件事。我無法測試它,但最簡單的方法似乎是將您的條件更改爲只需匹配您想要重寫的名稱。

<add input="{HTTP_HOST}" negate="false" pattern="^mysite.com$"/>`? 
1

嘗試修改此行:

<add input="{HTTP_HOST}" negate="false" pattern="^mysite.com$"/> 
1

如果pattern是正則表達式,你可以使用

^[^\.]\.[^\.]$ 

僅在請求重定向沒有子域(只包含一個點)

  • 優勢:獨立於域名
  • 缺點:不適用於www.mysection.company.com
相關問題