最佳答案
我有一个 ASP.NET MVC 应用程序,它的路由允许通过/search/< searchterm > 搜索内容。
当我提供“ search/abc”时,它工作得很好,但是当我提供“/search/a + b + c”(正确的 url 编码)时,IIS7用 HTTP Error 404.11(请求过滤模块配置为拒绝包含双重转义序列的请求)拒绝请求。首先,它为什么会这样?似乎只有当它是 URL 的一部分时才会抛出错误,而不是作为查询字符串的一部分(/Transfer? q = a + b + c 工作得很好)。
现在我可以在 web.config 的安全部分启用双重转义请求,但是我犹豫不决,因为我不明白其中的含义,也不明白为什么服务器会拒绝请求“ a + b + c”作为 URL 的一部分,而接受作为查询字符串的一部分。
有人能解释一下并给点建议吗?