2012-02-02 31 views
0

我有一個在VS2010中寫入C#中的解決方案。當我在瀏覽器中輸入http://www.mywebsite.com時,我能夠成功顯示我的網站。當我在瀏覽器中輸入http://mywebsite.com時,我可以顯示我的網站,但有一些CSS問題。因爲在我的代碼中,我有一些設置文件,我的網站被認爲是'http://www.mywebsite.com'。這是故事。重定向http://mywebsite.com到http://www.mywebsite.com

我的問題是:如果用戶打字http://mywebsite.com有沒有辦法重定向到http://www.mywebsite.com

例如,如果鍵入http://google.com它被自動重定向到http://www.google.com

感謝。

+1

可能重複的[IIS 7 Canonical URL redirect](http://stackoverflow.com/questions/5857118/iis-7-canonical-url-redirect) – 2012-02-02 16:26:42

回答

0

一下添加到web.config中:

<rewrite> 
<rules> 
    <rule name="Redirect mywebsite.com to www" patternSyntax="Wildcard" stopProcessing="true"> 
     <match url="*" /> 
     <conditions> 
      <add input="{HTTP_HOST}" pattern="mywebsite.com" /> 
     </conditions> 
     <action type="Redirect" url="http://www.mywebsite.com/{R:0}" /> 
    </rule> 
</rules> 
</rewrite> 

在代碼隱藏,你也可以使用像(未測試)

if(!Request.Url.Host.StartsWith("www")) 
    Response.Redirect("http://www.mysite.com/" + Request.Url.LocalPath); 

但是這將有在MasterPage上的每個頁面上(如果有的話)或在Global.asax中稍作修改

+0

它的工作原理,謝謝。但是我在重寫單詞web.config中收到警告,告訴我:「元素'system.webserver'具有無效的子元素'rewrite'」。爲避免此警告需要做什麼? – Bronzato 2012-02-02 16:54:00

+0

您的系統不知道特定的配置部分。檢查http://stackoverflow.com/questions/5309059/the-element-system-webserver-has-invalid-child-element-rewrite或谷歌的錯誤消息。正確的標籤取決於你的.NET版本(我認爲它有4個不同)和/或你的IIS版本。 – Olaf 2012-02-02 17:05:20

0

退房IIRF:

http://iirf.codeplex.com/

一旦你的服務器上安裝創建一個名爲Iirf.ini ini文件,內容如下:

RewriteEngine ON 
StatusInquiry ON RemoteOk 
RewriteCond %{HTTP_HOST} ^mywebsite.com [I] 
RedirectRule ^/(.*)$ http://www.mywebsite.com/$1 [R=301] 

將文件複製並粘貼到您的根webfolder EG :httpdocs

這將完成這項工作。