2013-08-01 61 views
1

我有一個網站面臨規範issue.i希望我的網站從非WWW移動到WWW當我輸入我的網址,例如abc.com到WWW .abc.com.i有一個代碼,但它不工作。規範錯誤(因爲非www到www)通過web配置

<rewrite> 
<rules> 
    <rule name="RedirectToWWW" enabled="true" stopProcessing="true"> 
    <match url=".*" /> 
    <conditions> 
    <add input="{HTTP_HOST}" pattern="^(?!www)(\S+)\.com$" /> 
    </conditions> 
    <action type="Redirect" url="http://www.{C:0}/{R:0}" /> 
    </rule> 
    </rules> 
</rewrite> 

的錯誤是: 改寫多年平均值屬於system.webServer

回答

1

你可能會考慮不同的方法:

protected void Application_BeginRequest (object sender, EventArgs e) 
{ 
if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback) 
{ 
    UriBuilder builder = new UriBuilder (Request.Url); 
    builder.Host = "www." + Request.Url.Host; 
    Response.Redirect (builder.ToString(), true); 
} 
} 

然而,這將做302重定向那麼一點點的調整是推薦:

protected void Application_BeginRequest (object sender, EventArgs e) 
{ 
if (!Request.Url.Host.StartsWith ("www") && !Request.Url.IsLoopback) 
{ 
    UriBuilder builder = new UriBuilder (Request.Url); 
    builder.Host = "www." + Request.Url.Host; 
    Response.StatusCode = 301; 
    Response.AddHeader ("Location", builder.ToString()); 
    Response.End(); 
} 
} 

這一個會返回301 Moved Per manently。

如果你想將其添加在web.config中檢查此鏈接http://weblogs.asp.net/owscott/archive/2009/11/27/iis-url-rewrite-rewriting-non-www-to-www.aspx

+0

,我需要把這個方法,請告訴我完整地描述一下 – Ashish

+0

有Global.asax文件。在那你可以看到不同類型的方法。 –

+0

非常感謝代碼.....它工作 – Ashish