2009-07-05 8 views
2

Ich muss einige Seiten dauerhaft umleiten und den Benutzer auf die neue URL umleiten.Wie kann ich eine 301 Permanent Redirect mit ASP.NET senden?

Dieser Code legt nur die richtigen Header fest. Der Benutzer wird nicht umgeleitet.

public static void PermanentRedirect(this HttpResponse response, string newUrl) 
{ 
    response.Status = "301 Moved Permanently"; 
    response.StatusCode = 301; 
    response.AddHeader("Location", newUrl); 
} 

Wenn ich gesagt:

Response.Redirect(newUrl); 

am Ende, ein 302 Temporary Redirect durchgeführt wird.

Wie kann ich 301 den Benutzer umleiten?

Verwandte Fragen:

How do I programatically 301 redirect in an asp page

+0

ich gerade einen Blog-Post auf das geschrieben: http://www.ko-sw.com/Blog/post/Permanent-Redirect-Using-ASPNET.aspx – Kerido

Antwort

4

Versuchen Response.Flush und Response.End. Redirect sagt, um die Anfrage zu beenden, indem Sie eine 302.

+0

Response.End hat den Trick :) – MartinHN

0

oder versuchen Sie vielleicht ISAPI? Es imitiert mod_rewrite und andere .htaccess-Funktionalität auf IIS.

2

Hinweis: In ASP.NET 4.0 ist dies jetzt integriert, sodass Sie die Methode RedirectPermanent() verwenden können. z.B.

RedirectPermanent("/newpath/foroldcontent.aspx");