que tal vez esperar demasiado de ASP.NET, pero en Apache es trivial para volver a escribir las direcciones URL que así lo solicite algo como: http://mysite/myfolder/mypage/niceurlparameter gestiona realidad para servir a página estática http://mysite/mypage.html¿Qué hay de malo con esta configuración de enrutamiento Global.asax?
¿Cómo hacer que en Global.asax?
He intentado esto:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/*", "~/myfolder/{page}.html");
pero sigue volviendo 404 cuando i solicitud http://mysite/myfolder/mypage/niceurlparameter.
Sin embargo, esto funciona:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}.html/*", "~/myfolder/{page}.html");
así que se deje mipagina.html al solicitar http://mysite/myfolder/mypage.html/niceurlparameter.
Solo quiero deshacerme de la parte ".html" en mis URL. ¿Qué me estoy perdiendo?
ACTUALIZACIÓN: Por alguna razón, en el primer caso, el comodín '*' no se ha aceptado.
Cambiar a:
RouteTable.Routes.MapPageRoute("Static HTML", "myfolder/{page}/{whatever}", "~/myfolder/{page}.html");
aparece para encaminar la petición de página HTML, pero luego me sale el error:
There is no build provider registered for the extension '.html'.
¿Por qué en el mundo que sólo iba a funcionar en el primer caso (con html en URL), y no cuando html queda fuera?
¿Qué versión de IIS está ejecutando? Me parece recordar que IIS 6 no permitirá esto de la caja, necesita agregar una asignación de comodín. –
Consulte esta pregunta para una posible solución: http://stackoverflow.com/q/9918066/25727 – Jan
IIS es v7.5. El enlace sugerido ayudó. Gracias – tishma