ASP.Net MVC: captura de ciertas URL para redirigir 301
-
22-07-2019 - |
Pregunta
Me estoy moviendo de un diseño de sitio antiguo a un nuevo diseño con nuevas URL.
Todos los nombres de páginas anteriores eran archivos estáticos llamados PageXX.html, PageX.html, Index.html, donde X es un número.
Mi sitio ahora es dinámico, pero quiero capturar esas 3 URL entrantes y luego intentar redirigir a una nueva página determinada (redireccionamiento 301) o enviarlas a la página de inicio.
¿Hago todo esto en Global.asax o simplemente atrapo esas URL en Global.asax y luego lo dirijo a una Acción y hago un Redireccionamiento 301 en la Acción?
¡Cualquier ejemplo de código ayudaría mucho!
Gracias
EDITAR: creo que lo que hay que hacer es atrapar las rutas en Global.asax y luego enviarlas a una Acción que determinará dónde enviar al usuario, es decir. una página similar en el nuevo sitio que enviaré a la página de inicio.
Solución
Así es, simplemente hazlo en la configuración de tus rutas (generalmente en global.asax). Puede configurarlos como casos especiales estáticos.
routes.MapRoute("Page3",
"SomeURL/Page3.html",
new {
controller = "SomeController",
action = "SomeAction",
page = "2"
});
Otros consejos
Para las páginas PageXX.html, PageX.html, Index.html, también puede hacer coincidencias basadas en expresiones regulares. Eso le permitirá mantener todo con una sola asignación de ruta.