2010-06-30 16 views
9

Estoy trabajando en un sitio que es parcialmente contenido estático y parcialmente MVC. La raíz del sitio es index.html y tengo todos los controladores explícitamente enrutados y todos los archivos html ignorados. Sin embargo, cuando llega a la raíz del sitio web, intenta enrutarlo. ¿Cómo puedo decirle al motor de rutas que ignore la raíz del sitio? www.misitio.com no debe enrutarse, sino que debe ir a index.html. Aquí está mi configuración de enrutamiento:Obteniendo que MVC ignore la ruta a la raíz del sitio

  routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.IgnoreRoute("*.html|js|css|gif|jpg|jpeg|png|swf"); 

     routes.MapRoute(
      "vendor_signup","{vendor}/signup/{action}/", 
      new { controller = "Signup", action = "Index", vendor=UrlParameter.Optional} // Parameter defaults 
     ); 
     routes.MapRoute(
      "signup","signup/{action}/", 
      new { controller = "Signup", action = "Index", vendor=Vendors.PCICentral} // Parameter defaults 
     ); 
//more routes below 

Respuesta

3

Una de las rutas era todavía en {} que hizo tratar de analizar la raíz.

+0

Hola, es su código de seguridad correcto con esta última idea? – JasonMenny

16

Creo que lo que quiere decir es que cuando alguien accede a / en su sitio web, no quiere usar MVC, pero muestra una página estática. Para lograr esto, debes decirle a MVC que ignore esa ruta y permita que los formularios web lo manejen. Los formularios web deben mostrarle /index.html cuando recibe la solicitud /.

Simplemente añadiendo esto antes de sus rutas debería funcionar:

routes.IgnoreRoute(""); 
+0

Agregar esta ruta de ignorar no funcionó. Obtengo: * HTTP Error 403.14 - Prohibido El servidor web está configurado para no mostrar el contenido de este directorio. * – Organic

+0

@Organic En ese caso, verifique sus documentos predeterminados. O no tiene un index.html o similar, o no está configurado en IIS. En IIS vaya a su sitio web y eche un vistazo a la propiedad "Documento predeterminado". Si uno de esos documentos existe, mostrará ese documento, de lo contrario recibirá esta advertencia. –

Cuestiones relacionadas