我遇到了一个非常特殊且令人烦恼的问题。它涉及以下所有内容:
- Windows 服务器 2016 (IIS 10)
- URL 重写模块
- ColdFusion 2016
- https
当触发重写规则以指向 ColdFusion (.cfm) 页面时,该页面似乎在大多数浏览器中都能正常返回,但在 Firefox 中,它在开发人员工具中不显示任何状态代码,而在 Safari 9.1(不是在 Safari 8 或 10!?)中,该页面根本不会加载。仅当以下所有条件都为真时才会发生这种情况:
- 这是一个 ColdFusion 页面(.txt 或 .aspx 文件不会出现这种情况)
- 使用 URL Rewrite 模块重写 url(例如将 /test1 重写为 /test1.cfm)
- 通过 https
当我查看 IIS 日志中的请求时,我看到的内容取决于浏览器。当我使用 Chrome 访问时,它看起来很正常。使用 Firefox 时,它显示两个请求,第一个 sc-win32-status 为 64,第二个为 0。使用 Safari 9.1(页面根本无法加载)时,它显示重复的请求,大部分是 sc-win32-status=64,但也有一些是 22 和 1168。
任何帮助均感激不尽。
答案1
经过深入研究,我发现这是一个与 IIS10 和 http/2 相关的已知问题。Adobe 和 Microsoft 都参与其中,Microsoft 应该会在 2018 年 4 月发布修复程序。短期修复方法是禁用 http/2。我们的托管服务提供商还建议安装 BonCode 连接器作为修复程序。
请注意,这不仅影响 url 重写,还影响默认文档设置。
https://tracker.adobe.com/#/view/CF-4198446
更新: 此问题已作为 KB4093120 的一部分修复
https://support.microsoft.com/en-us/help/4093120/windows-10-update-kb4093120