Tenemos un sitio web en dominio.com, que también se puede acceder a través de una entrada CNAME para www.dominio.com que apunta a dominio.com. Nos gustaría que todos los visitantes de www.dominio.com sean redireccionados a dominio.com usando un redireccionamiento 301. ¿Cuál es la mejor manera de implementar esto en asp.net mvc? En global.asax?Asp.net mvc 301 redirige de www.dominio.com a dominio.com
Respuesta
Acepto que hacer esto en el nivel de aplicación no es deseable según los comentarios a la pregunta.
La instalación de la función de redirección de HTTP en IIS7 es la mejor manera de hacerlo.
En nuestro caso, otras restricciones nos obligan a hacerlo a nivel de aplicación.
Este es el código que usamos en Global.asax para realizar la redirección:
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();
}
}
me da: Nombre del grupo no válido: Los nombres de los grupos deben comience con un carácter de palabra –
Esto ahora se ha hecho más fácil usando UrlRewrite que se puede agregar al sitio web.config. Solo quería mencionarlo aquí. http://stackoverflow.com/a/10193142 – gldraphael
que es lo mejor para SEO con 'www' o sin' www' porque la [este] (http://stackoverflow.com/q/15951963/2218697) publicación dice? – stom
- 1. ASP.NET MVC redirige del atributo
- 2. Cómo redirigir desde www.dominio.com hacia domain.com?
- 3. 301 redirigir en asp.net 4.0
- 4. ASP.NET MVC: Comportamiento posterior a la extraña
- 5. ¿El controlador Spring-MVC redirige a la página "anterior"?
- 6. ¿Cómo se hace una ruta de redirección permanente de 301 en ASP.Net MVC
- 7. De Monorail a ASP.Net MVC
- 8. asp.net mvc mvc 2 a 4
- 9. ¿Cómo CURL www.google.com? Me redirige a .co.uk
- 10. Redirecciona a la página 404 programáticamente usando asp.net MVC
- 11. ¿Cómo se redirige 301 con o sin la barra al final?
- 12. 301 redirigir a AJAX - redirigido?
- 13. Configuración de Amazon Route 53 y configuración de redirección 301
- 14. Migración de WebForms de ASP.NET a MVC
- 15. ¿Cómo redirige HTTPS a HTTP?
- 16. htaccess: redirige todas las solicitudes a diferentes dominios
- 17. Devolución de una redirección 301 desde una acción de controlador
- 18. ¿Qué es ASP.NET WebForms equivalente a ViewData de ASP.NET MVC
- 19. Sugerencias para migrar de ASP.NET WebForms a ASP.NET MVC?
- 20. ¿Cómo redirigir la acción MVC sin devolver 301? (usando MVC 4 beta)
- 21. Agregar ID y título a URL slugs en ASP.NET MVC
- 22. ASP.NET MVC vs. ASP.NET 4.0
- 23. Membresías de ASP.Net MVC
- 24. ASP.NET MVP vs ASP.NET MVC
- 25. ASP.Net MVC vs ASP.Net Formularios
- 26. ASP.NET MVC vs Spring MVC
- 27. ¿Miles de 301 redirecciones son malas para SEO?
- 28. ASP.NET MVC 3: redirigir a otra acción
- 29. asp.net mvc agregar css a editorfor?
- 30. viewdata que pasan a ASP.NET MVC masterpages
La forma más sencilla es crear otro sitio web en IIS para controlar la redirección. No necesitaría código: la redirección de IIS podría tratarlo automáticamente. –
De hecho. IIS es el camino a seguir. Realmente no desea atar su aplicación con este tipo de cosas cuando IIS lo hace de forma gratuita. IIS7 es su mejor apuesta aquí. –
El problema aquí es que el sitio está en una granja situada detrás de un equilibrador de carga sobre el cual tenemos poco control. El host resuelve la dirección IP interna del servidor y el nombre de host original se vuelve a empaquetar en un encabezado "x-forward-host". Por lo que puedo ver, esto descarta usar la característica IIS7 HTTP Redirect. – spender