Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET Routing - Ignore routes for files with specific extension, regardless of directory

Say I want to remove any mapped routes for files with a certain file extension.

 RouteTable.Routes.Ignore("{root}.hello");

Works for any file that has the extension .hello in the root directory, however as soon as i go into any subfolders the 'ignore' rule isn't applied.

Ive tried lots of different combinations, but can't seem to get one that doesn't throw a compiler exception, or not work?

like image 816
maxp Avatar asked Jul 12 '10 12:07

maxp


2 Answers

Check out Phil's blog regarding this. Basically, you would do something like this:

Example 1: Do not perform routing for any request for all .aspx files:

routes.IgnoreRoute("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});

Example 2: Do not perform routing for any request for favicon.ico

routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
like image 142
Tommy Avatar answered Nov 20 '22 01:11

Tommy


If you're using ASP.NET MVC, use IgnoreRoutes (MVC Extension method)

Routes.IgnoreRoute("{*foo*}", new { foo = @"someregextoignorewhatyouwant"});

If you're using ASP.NET Web Forms, use StopRoutingHandler which implements IRouteHandler.

routes.Add(new Route("*someregextoignorewhatyouwant*", new StopRoutingHandler()));
like image 4
RPM1984 Avatar answered Nov 20 '22 02:11

RPM1984