Добавьте это в RegisterRoutes
раздел Global.asax.cs
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); // This one is here by default
routes.IgnoreRoute("{resource}.cgi/{*pathInfo}"); // This is your new one
// Other routes go AFTER these two as before.
И убедитесь, что в вашем файле web.config также включен customErrors
, который, я уверен, вы ужесделанный.
Я только что попробовал, и это работает (т.е. добавление чего-либо с помощью .cgi
отправило меня на мою стандартную страницу с ошибкой, без каких-либо изменений на самом веб-сервере).
В качестве отступления, пожалуйстане меняйте свои URL-адреса, добавляя в конце .aspx
, так как это противоречит духу MVC!А также злоумышленник может просто пропустить .aspx
и все равно получить страницу 404, если вы не внедрили мое крошечное исправление.
РЕДАКТИРОВАТЬ: Что произойдет, если вы поместите это в свой <httpHandlers>
раздел web.config
?
<add verb="*" path="*.cgi" type="System.Web.Mvc.MvcHttpHandler, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />