跑步IIS 7
我正在共享托管帐户上运行,并且我的服务器上有一个名为 的文件+.jpg
,但是当我尝试通过 URL 导航到该文件时
http://example.com/images/%2b.jpg
Run Code Online (Sandbox Code Playgroud)
服务器无法正确响应,我的浏览器返回“找不到网页”错误。
在我的开发机器上,这工作得很好。我应该告诉我的托管服务商启用什么选项才能接受此类 URL?
看起来问题是由双转义序列引起的 404.11 错误:
HTTP 错误 404.11 - 未找到 请求过滤模块配置为拒绝包含双转义序列的请求。
这篇知识库文章对此进行了详细介绍。
运行这个命令:
Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
Run Code Online (Sandbox Code Playgroud)
允许提供文件。
对于您的情况,您可以将此部分添加到应用程序的 web.config 中:
<requestFiltering allowDoubleEscaping="true" />
Run Code Online (Sandbox Code Playgroud)
如这篇TechNet 文章中所述。