2011-08-25 14 views
5

chcę zrobić trasę, która łapie wszystkie pliki "php" ... Próbowałem:Jak mogę napisać trasę, aby złapać * .php?

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

Ale pojawia się następujący wyjątek:

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 

Należy złapać:

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

Chcę napisać pojedynczą regułę, która może przechwytywać poziomy N ... Jak mogę to zrobić?

Odpowiedz

6

Można użyć ograniczenia:

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

Jeśli nadal masz domyślną trasę, musi być umieszczony przed.

Moja odpowiedź jest oparta na: Make routing ignore requests for a file extension

+0

tylko luźno oparta na tym przepisie - miłe rozwiązanie! –

Powiązane problemy