sharápova sharapova novio maría maria esposo edad biografia asp.net redirect

asp.net - novio - maria sharapova ranking



ASP.NET Response.Redirect usa 302 en lugar de 301 (4)

301 es cache-able. si está utilizando ASP.NET 4.0, puede usar RedirectPermanent .

Además, configure su código de estado después de redirigir

también, mira estas respuestas. Código de estado HTTP Response.Redirect

usando el siguiente código

context.Response.StatusCode = 301; context.Response.Redirect(newUrl, true); context.Response.End();

Puedo ver en el violinista que está usando un 302 en lugar de un 301. ¿Debería establecer el estado después de la llamada de redirección?


Estoy combinando las respuestas anteriores con algo que uso si tengo dominios / subdominios antiguos para diferentes versiones de un sitio que deseo redireccionar al actual, principalmente por motivos de SEO, para no tener múltiples versiones del mismo sitio. en diferentes URL:

using System; using System.Net; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace myapp.web { public class Global : HttpApplication { void Application_Start(object sender, EventArgs e) { // Code that runs on application startup AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } protected void Application_BeginRequest(object sender, EventArgs e) { //some of these checks may be overkill if ((HttpContext.Current != null) && (HttpContext.Current.Request != null) && (HttpContext.Current.Request.ServerVariables != null) && (!String.IsNullOrEmpty(HttpContext.Current.Request.ServerVariables["HTTP_HOST"])) ) { switch (HttpContext.Current.Request.ServerVariables["HTTP_HOST"]) { case "old.url.com": HttpContext.Current.Response.RedirectPermanent("https://new.url.com", true); //status code is not needed if redirect perm is used HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.MovedPermanently; HttpContext.Current.Response.End(); break; case "nightly.old.url.com": HttpContext.Current.Response.RedirectPermanent("https://nightly.new.url.com", true); //status code is not needed if redirect perm is used HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.MovedPermanently; HttpContext.Current.Response.End(); break; } } } } }


Response.Redirect () sobrescribirá la propiedad StatusCode con el código para una redirección (302). Además, como está utilizando la sobrecarga Response.Redirect () tomando el parámetro booleano, debe establecerlo en False si desea llamar a Response.End () usted mismo. De lo contrario, es redundante y puede causar errores.

Pruebe lo siguiente (pre-ASPP.NET 4.0; la respuesta de Adam Butler cubre la nueva mejor práctica):

context.Response.Redirect(newUrl, false); context.Response.StatusCode = 301; context.Response.End();