在这个旧的StackOverflow帖子中,据说只有IE6有PNG favicons的问题,但在channel9上,它说IE7也不支持PNG favicons.
但是,不幸的是,channel9链接已被删除 - 所以有人知道官方/测试的信息,说明哪个版本的IE开始支持PNG favicons?
无论路径信息如何,我都想阻止对任何.php或.cgi的请求.
例如,使用以下URL时:
http:// mysite /Admin/Scripts/Setup.php
它匹配现有路线:
routeCollection.MapRoute("Admin", "admin/{controller}/{action}/{uid}/{*pathInfo}", new { controller = "Admin", action = "Index", uid = "" });
Run Code Online (Sandbox Code Playgroud)
但是没有脚本控制器,所以MVC抛出以下内容:
IControllerFactory''没有返回名为'scripts'的控制器的控制器.
我真正喜欢的是,在MVC进入控制器之前,请求只是遇到了一次硬故障.
我知道我可以通过在Global.asax中挂钩Application_BeginRequest并抛出一个新的HttpException(404,"Not Found")来做到这一点,但这不是我想要的优雅解决方案.
我真的希望这会奏效:
routeCollection.IgnoreRoute("{resource}.php/{*pathInfo}");
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.
注意:Sean Lynch的答案很有效,但我仍然非常喜欢基于System.Web.Routing或System.Web.Mvc的解决方案.这样我就可以允许我的用户在运行时添加自己的排除项.