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"));
}
}
InformationsquelleAutor Learning | 2012-05-20
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
Oops Mein Fehler. Sollte bemerkt haben... ich bin der Planung und Implementierung von url-routing, anstatt umschreiben und ich hatte Problem mit dem umschreiben durch die Struktur und Nein. der query-string bei bestimmten Seiten. Schätzen Sie Ihre Antwort. Dank
Es ist besser, StartsWith statt Conatins wie dieses : if (HttpContext.Aktuelle.Anfrage.Url.ToString().ToLower().StartsWith("website.net"))
InformationsquelleAutor MartinHN
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
InformationsquelleAutor Igor
Version 4 von .NET hat tatsächlich eine verbesserte Funktion für einzelne Seiten Umsetzung -redirectpermanent.
Response.RedirectPermanent(NEW_URL);
InformationsquelleAutor JNF
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
InformationsquelleAutor wloescher
wenn Sie nicht wissen, was ist die Anwendung, die domain-Namen ,verwenden Sie so etwas wie dieses
InformationsquelleAutor mohammadali ghanbari