Wie man eine 301-Weiterleitung in ASP.NET 4.0?
Ich versuche zu implementieren, URL-Umleitung für die website, anstatt es Seite für Seite. Ich will es tun, in der globalen.asax-Datei. Unten ist der code, den ich definiert haben.
Will ich haben http://website.net als meine Haupt-url & möchten Sie eine permanente URL-Umleitung, wenn jemand Typen in http://www.website.net.
Leider ist es nicht die Arbeit für die live-website. Kann jemand, das problem im code. Der code erzeugt keine Fehler.
void Application_Start(object sender, EventArgs e)
{
//Code that runs on application startup
if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://website.net"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", Request.Url.ToString().ToLower().Replace("http://website.net", "http://www.website.net"));
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hauptproblem: Ihr tun, die oben genannten Dinge in
Application_Start
- die wird nur einmal ausgeführt. Sollten Sie hook up mit jeder Anfrage. Versuchen Sie dies:Ein noch besserer Ansatz wäre die Verwendung von URL-rewriting, die konfiguriert werden können, die innerhalb
Web.Config
:Microsoft-rewriting-Modul - Force www auf url Oder entfernen von www-url
Wenn Sie mit IIS 7 oder höher, die einfachste Lösung ist die Verwendung der httpRedirect element in Ihrer Website.config.
Diese Methode ist sehr leistungsfähig, zum Beispiel, wenn Sie geändert haben die domain aber die Seiten sind die gleichen, Sie haben nur hinzuzufügen:
Schrieb ich einen kleinen Artikel hier: ASP.NET 301 permanent redirects: die beste Lösung
Version 4 von .NET hat tatsächlich eine verbesserte Funktion für einzelne Seiten Umsetzung -redirectpermanent.
Response.RedirectPermanent(NEW_URL);
Aufbauend auf dem bereits korrekten und hilfreichen Antworten, hier sind ein paar konkrete Beispiele. Angenommen, Sie möchten, löschen Sie die alte Seite (so wie ich), gibt es ein paar Optionen.
OPTION 1: Ändern der Globalen.asax
OPTION 2: Ändern Sie die web.config
wenn Sie nicht wissen, was ist die Anwendung, die domain-Namen ,verwenden Sie so etwas wie dieses