通过路由阻止 url 通配符

Block url wildcards through routes

我想停止所有带有特定通配符的 url,例如所有内容文件,即 localhost/content/js,url 下的所有文件都应该 return 404页。

我想在 routeinitialization.cs 中以编程方式执行此操作,这意味着我想添加与此类似的内容:

        RouteTable.Routes.IgnoreRoute(
            url: "{*contentjsapp}",
            constraints: new { contentjsapp = @"content/js/app/" }
        );

但是让它显示 404 页面而不是像上面那样忽略路由。但是,我找到的所有示例都使用自定义 404 控制器。

解决这个问题的方法非常简单。我可以在 Web.config 中添加以下行(在 :

部分下),而不是以编程方式进行
<handlers>
  <add name="BlockContentJsApp" path="/content/js/app/*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</handlers>

它会阻止该页面的所有通配符。

感谢 Ted Nyberg 的帮助!