2011-08-25 21 views
5

Tüm "php" dosyalarını yakalayan bir rota yapmak istiyorum ... Denedim:* .Php'yi yakalamak için nasıl bir yol yazabilirim?

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

Ancak şu istisnayı elde ediyorum:

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 

Yakalanması gereken:

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

N seviyelerini yakalayabilen tek bir kural yazmak istiyorum ... Bunu nasıl yapabilirim?

cevap

6

Bir sınırlamayı kullanabilirsiniz: Hala varsayılan rota varsa

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

, bu daha önce yerleştirilmelidir. Sadece gevşek bu maddeye dayanarak Make routing ignore requests for a file extension

+0

- güzel çözüm:

Benim cevap dayanmaktadır! –

İlgili konular