我有一个Multiculture MVC2网站。 实际上我的主页可以通过以下路径访问:
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
这样我就不必在不同的网址之间共享pagerank。
请注意,en
字符串是动态的,并为网站设置了文化。
我是Asp.Net MVC的新手,有人可以发布一些代码吗? 感谢
答案 0 :(得分:2)
您可以创建自定义操作结果。请参阅此主题:http://forums.asp.net/p/1337938/2700733.aspx
答案 1 :(得分: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”);