2010-12-18 106 views
3

我有一個Multiculture MVC2網站。 其實我的主頁可以用以下路徑訪問:301重定向到Asp.Net MVC

http://mydomain.com 
http://mydomain.com/ 
http://mydomain.com/en 
http://mydomain.com/en/ 
http://mydomain.com/en/home 
http://mydomain.com/en/home/ 

我要的是,上述所有的路徑進行301重定向到以下幾點:

http://mydomain.com/en 

讓我不要必須在不同的網址之間分享網頁排名。

請注意,en字符串是動態的,並設置網站的區域性。

我是新的Asp.Net MVC,有人可以發佈一些代碼來做到這一點? 謝謝

回答

2

像這樣

public class PermanentRedirectResult : ViewResult 
{ 
    public string Url { get; set; } 

    public PermanentRedirectResult(string url) 
    { 
     if (string.IsNullOrEmpty(url)) 
      throw new ArgumentException("url is null or empty", url); 
     this.Url = url; 
    } 

    public override void ExecuteResult(ControllerContext context) 
    { 
     if (context == null) 
     throw new ArgumentNullException("context"); 
     context.HttpContext.Response.StatusCode = 301; 
     context.HttpContext.Response.RedirectLocation = Url; 
     context.HttpContext.Response.End(); 
    } 
} 

以及與此

回報稱之爲新 PermanentRedirectResult( 「/ myurl」);

+0

要downvoter?爲什麼在發佈後2年內回覆這個答案,至少你可以做的是提供評論?還記得這是MVC版本2! – Rippo 2013-01-09 09:17:33