Вы действительно должны сделать это в IIS.
Но если вы хотите иметь полный контроль над ним (хотя не можете найти вескую причину!), Вы можете добавить маршрут «поймать все» в качестве последнего маршрута,Что-то вроде:
routes.MapRoute(
"Static",
"{*path}",
new { controller = "Home", action = "Static"});
Затем добавьте в ваш элемент управления действие для его обработки:
public ActionResult Static(string path)
{
//path is everything you get after the /
//Use Server.MapPath to load it
//Add headers to response, etc
return File();
}
Но, на мой взгляд, это действительно плохо.Наиболее очевидная вещь - это взять путь от URL и сопоставить его с сервером.Что произойдет, если путь будет /../../Windows/...
?Наверное, ничего, но мне это не нравится.