Wir haben eine Website unter domain.com, die auch über einen CNAME-Eintrag für www.domain.com zugänglich ist, der auf domain.com verweist. Wir möchten, dass alle Besucher von www.domain.com mit einer 301-Weiterleitung zu domain.com weitergeleitet werden. Was ist der beste Weg, dies in asp.net mvc zu implementieren? In global.asax?Asp.net mvc 301 Weiterleitung von www.domain.com zu domain.com
Antwort
Ich akzeptiere, dass dies auf Anwendungsebene ist nicht wünschenswert, wie die Kommentare zu der Frage.
Die HTTP-Redirect-Funktion in IIS7 ist der beste Weg, dies zu tun.
In unserem Fall zwingen uns andere Einschränkungen dazu, dies auf Anwendungsebene zu tun. Hier
ist der Code, den wir in global.asax verwenden, um die Umleitung auszuführen:
private static readonly Regex wwwRegex =
new Regex(@"www\.(?<mainDomain>.*)",
RegexOptions.Compiled
| RegexOptions.IgnoreCase
| RegexOptions.Singleline);
protected void Application_BeginRequest(Object sender, EventArgs e)
{
string hostName = Request.Headers["x-forwarded-host"];
hostName = string.IsNullOrEmpty(hostName) ? Request.Url.Host : hostName;
Match match = wwwRegex.Match(hostName);
if (match.Success)
{
string mainDomain = match.Groups["mainDomain"].Value;
var builder=new UriBuilder(Request.Url)
{
Host = mainDomain
};
string redirectUrl = builder.Uri.ToString();
Response.Clear();
Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", redirectUrl);
Response.End();
}
}
gibt mir: Ungültige Gruppenname: Gruppennamen müssen Beginnen Sie mit einem Wortzeichen –
Dies wurde jetzt mit Hilfe von UrlRewrite einfacher gemacht, das der web.config der Site hinzugefügt werden kann. Ich wollte es nur hier erwähnen. http://StackOverflow.com/A/10193142 – gldraphael
welches ist am besten für SEO mit 'www' oder ohne' www' weil [dies] (http://StackOverflow.com/q/15951963/2218697) Post sagt mit? – stom
- 1. Eine Umleitung von domain.com zu www.domain.com einrichten
- 2. .htaccess Redirect von www.domain.com zu https://domain.com
- 3. DNS Redirect domain.com zu www.domain.com
- 4. Ich bekomme meine Bewerbung auf domain.com statt auf www.domain.com
- 5. Wie kann ich von www.domain.com auf domain.com umleiten?
- 6. 301 Weiterleitung von htaccess
- 7. Wie leite ich eingehende Anfragen von domain.com zu www.domain.com über HTTP und HTTPS mit .htaccess umleiten?
- 8. Wie leite ich domain.com auf WWW.domain.com unter Django um?
- 9. ASP.NET MVC 4 - 301 Redirects in RouteConfig.cs
- 10. 301 Weiterleitung .htaccess
- 11. 301-Weiterleitung .htaccess
- 12. 301-Weiterleitung & htaccess RewriteEngine
- 13. htaccess 301-Weiterleitung zu entfernen html und Nummer
- 14. 301 Redirect in Asp.Net MVC
- 15. Zurückgeben einer 301-Weiterleitung von einer Controller-Aktion
- 16. Entfernen von Abfragezeichenfolgen von 301-Weiterleitung
- 17. Wie von http://domain.com:443 zu https://domain.com umleiten?
- 18. 301-Weiterleitung falsch (zu-Server-Pfad)
- 19. 301-Weiterleitung index.html/oder /index.php
- 20. 301 Weiterleitung von freundlichen URL iis7
- 21. Silverlight WCF Web-Service-Hosting auf domain.com und www.domain.com
- 22. htaccess 301 Weiterleitung zur Indexseite
- 23. htaccess 301-Weiterleitung funktioniert nicht
- 24. .htaccess 301-Weiterleitung von einzelner Seite
- 25. NGINX - Umleitung www.my-domain.com/blog/1234 zu blog.my-domain.com/1234
- 26. Javascript Weiterleitung an Controller-Aktion asp.net mvc
- 27. htaccess 301-Weiterleitung - Entfernen Sie Query-String
- 28. Umleiten von www.domain.com/subfolder/ zu www.domain.com/subfolder/blog.html mit htaccess
- 29. 301-Weiterleitung doesnot Arbeit in .htaccess
- 30. Wie 301-Weiterleitung .htaccess mit & unterzeichnen
Der einfachste Weg ist, eine andere Webseite in IIS erstellen, um die Umleitung zu behandeln. Sie müssten nicht programmieren - die IIS-Umleitung könnte damit automatisch umgehen. –
In der Tat. IIS ist der Weg zu gehen. Sie wollen Ihre Anwendung nicht wirklich mit dieser Art von Sache verknüpfen, wenn IIS es kostenlos macht. IIS7 ist hier die beste Wahl. –
Das Problem hier ist, dass die Website in einer Farm sitzt hinter einem Lastenausgleich, über den wir wenig Kontrolle haben. Der Host wird auf die interne IP-Adresse des Servers aufgelöst, und der ursprüngliche Hostname wird in einem Header "x-forwarded-host" neu verpackt. Soweit ich sehen kann, schließt dies die Verwendung der IIS7 HTTP Redirect-Funktion aus. – spender