301 Redirect в Asp.Net MVC - PullRequest
       15

301 Redirect в Asp.Net MVC

3 голосов
/ 18 декабря 2010

У меня есть сайт 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 между разными URL.

Обратите внимание, что строка en является динамической и задает культуру для сайта.

Я новичок в Asp.Net MVC,кто-то может опубликовать код для этого?Спасибо

Ответы [ 2 ]

2 голосов
/ 18 декабря 2010

как-то так

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");

2 голосов
/ 18 декабря 2010

Вы можете создать собственный результат действия. Смотрите эту тему: http://forums.asp.net/p/1337938/2700733.aspx

...