2011-08-25 16 views
5

Quiero hacer una ruta que atrapa todos los archivos "PHP" ... He intentado:¿Cómo puedo escribir una ruta para capturar * .php?

routes.MapRoute("php", "{*x}.php", new { controller = ... }); 

pero me da la siguiente excepción:

A path segment that contains more than one section, such as a literal section 
or a parameter, cannot contain a catch-all parameter. 
Parameter: routeUrl 

Se debe coger:

/p1/p2/p3.php 
/p1/p2.php 
/p1.php 

Quiero escribir una sola regla que pueda capturar los niveles N ... ¿Cómo puedo hacer eso?

Respuesta

6

Se puede utilizar una restricción:

routes.MapRoute("php", "{*allphp}", new { ... }, new { allphp = @".*\.php" }); 

Si todavía tiene la ruta predeterminada, este debe colocarse antes.

Mi respuesta se basa en: Make routing ignore requests for a file extension

+0

Sólo vagamente basada en dicho artículo - buena solución! –

Cuestiones relacionadas