通过路由阻止 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 的帮助!
我想停止所有带有特定通配符的 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 的帮助!