2010-12-18 75 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