mvc.net路由中带特殊字符如【.*/\】等时遇到的天坑

时间:2023-03-09 18:32:27
mvc.net路由中带特殊字符如【.*/\】等时遇到的天坑

用mvc.net的路由做网站伪静态时出现的天坑,自己一直没测试出来,竟然要靠客户被坑了后才知道mvc.net路由中带特殊字符如【.*/\】等时遇到的天坑

解决办法 参考https://*.com/questions/16581184/mvc4-404-errors得到最安全的解决办法是:

  <system.webServer>
<handlers>
<!--推荐这里的配置,虽然麻烦点,但是安全,有效-->
<add name="UrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web" path="/product/*" verb="*" />
<add name="UrlRoutingHandler301" type="System.Web.Routing.UrlRoutingHandler, System.Web" path="/Productshow2.asp*" verb="*" />
<!--推荐配置结束-->
</handlers>
<!--这里不推荐,因为会导致每一个资源都请求上运行,浪费资源-->
<modules runAllManagedModulesForAllRequests="true">
</modules>
<!--浪费资源的配置结束-->
...
</system.webServer>