Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I'm getting a "Does not implement IController" error on images and robots.txt in MVC2

I'm getting a strange error on my webserver for seemingly every file but the .aspx files.

Here is an example. Just replace '/robots.txt' with any .jpg name or .gif or whatever and you'll get the idea:

The controller for path '/robots.txt' was not found or does not implement IController.

I'm sure it's something to do with how I've setup routing but I'm not sure what exactly I need to do about it.

Also, this is a mixed MVC and WebForms site, if that makes a difference.

like image 205
Ben Lesh Avatar asked Jan 21 '10 14:01

Ben Lesh


2 Answers

You can ignore robots.txt and all the aspx pages in your routing.

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

You might want to ignore the favicon too.

routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"}); 

You can adjust the regular expression to exclude paths.

Haacked from the source.

like image 136
Daniel A. White Avatar answered Sep 21 '22 01:09

Daniel A. White


The ignore route given above didn't work for me but I found a similar one that did:

routes.IgnoreRoute("{*staticfile}", new { staticfile = @".*\.(css|js|gif|jpg)(/.*)?" }); 
like image 37
The Coder Avatar answered Sep 22 '22 01:09

The Coder