今天部署一个 node 的网站,网站部署在 IIS 上。后面打开有一些报错。 F12 查看了下,请求 URL: http://localhost:80/static/js/++5l.1e05875d.js 返回 404. 服务器上访问这个地址,出现如下提示:
HTTP 错误 404.11 - Not Found
请求筛选模块被配置为拒绝包含双重转义序列的请求。
最可能的原因:
该请求包含双重转义序列,而 Web 服务器上配置的请求筛选拒绝双重转义序列。
后面谷歌了一下,结果大部分都是建议把 requestFiltering@allowDoubleEscaping 设置打开。
微软官方也不建议这么做,可以查看: https://support.microsoft.com/zh-cn/help/942076/error-message-when-you-visit-a-web-site-that-is-hosted-on-iis-7-0-http
后面看到,其实这个设置是来防止通过 url 进行代码注入的,HTML injection, JavaScript injection or SQL injection 等。
所以,最好的解决方案是把请求中的'+'号给编码。但是这个是用 webpack 打包,自动生成的,不知道去哪里修改。有 V 友有办法,或者其他好的建议吗?
第一次弄这个,不熟,轻喷。。。。