3 Stimmen

301-Umleitung in Asp.Net MVC

Ich habe eine Multiculture MVC2 Website. Derzeit kann meine Homepage mit den folgenden Pfaden aufgerufen werden:

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

Was ich will, ist, dass alle oben genannten Pfade eine 301-Weiterleitung zu den folgenden machen:

http://mydomain.com/en

damit ich den Pagerank nicht zwischen verschiedenen URLs aufteilen muss.

Beachten Sie, dass die en String ist dynamisch und bestimmt die Kultur der Website.

Ich bin neu in Asp.Net MVC, könnte jemand einen Code posten, um das zu tun? Danke

2voto

Jimmy Bosse Punkte 1176

Sie können ein benutzerdefiniertes Aktionsergebnis erstellen. Siehe diesen Thread: http://forums.asp.net/p/1337938/2700733.aspx

2voto

Rippo Punkte 21266

にかような

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();
    }
}

und rufen Sie es mit diesem

r PermanentRedirectResult("/myurl");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X