我有一个ASP.NET MVC应用程序,它的路由允许通过/ search / <searchterm>搜索内容。
当我提供“ search / abc”时,效果很好,但是当我提供“ / search / a + b + c”(正确的url编码)时,IIS7拒绝请求,并显示HTTP错误404.11(请求过滤模块配置为拒绝包含双重转义序列的请求)。首先,为什么要这样做?如果它是URL的一部分,但似乎不是查询字符串的一部分,则似乎只会抛出错误(/ transmit?q = a + b + c可以正常工作)。
现在,我可以在web.config的安全性部分中启用双重转义请求,但是由于我不了解其含义,而且我也很犹豫这样做,服务器也为什么不将请求“ a + b + c”拒绝为URL的一部分,但接受为查询字符串的一部分。
有人可以解释并给出建议怎么办吗?
/search/a%2520b%2520c
导致了标记,该标记导致一个可爱的“从客户端(%)检测到潜在的Request.Path值”错误。看来你赢不了。