2011-08-25 18 views
5

Voglio fare un percorso che cattura tutti i file "php" ... ho provato:Come posso scrivere un percorso per catturare * .php?

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

ma ottengo la seguente eccezione:

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 

Si deve prendere:

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

Voglio scrivere una singola regola che può catturare i livelli N ... Come posso farlo?

risposta

6

È possibile utilizzare un vincolo:

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

Se avete ancora il percorso di default, questo deve essere inserito prima.

La mia risposta si basa su: Make routing ignore requests for a file extension

+0

solo vagamente basata su tale articolo - bella soluzione! –

Problemi correlati