【问题标题】:416 Requested Range Not Satisfiable416 请求的范围不满足
【发布时间】:2011-08-18 23:38:26
【问题描述】:

上下文:我正在使用一个名为 Social Engine 的软件包。这是非常错误的。

无论如何,我要求(甚至付费)社交引擎人员进行升级,当他们最终这样做时,我登录该站点并注意到样式都丢失了。我打开了一张支持票,他们只告诉我这是一个 416 错误并联系我的 ISP。

此错误是通过测试指向位于软件可写文件夹中的 CSS 文件的直接链接而发现的。

http://ministersdev3.themonastery.org/application/css.php?request=application/themes/monastery-theme/theme.css&c=6

我开始研究时发现这是一个极其罕见的错误,我看不到任何关于在我的 Ubuntu 10.10 Linode 服务器(运行最新的 Apache 和 PHP5 并安装了 APC 扩展)上关闭范围请求的建议。可能是软件问题?不知何故,APC 的缓存工作正常吗?我将此软件中的缓存重置为 60 秒,并确保它使用的是 APC。还是没有骰子。

他们的软件可能正在做的事情是我需要研究修补吗?

【问题讨论】:

  • 提醒一下,我在更新服务器上的视频后收到了消息 - 名称相同但内容不同。我通过在文件名末尾添加?v1 来更改版本并解决了它,另一个选项是清除浏览器缓存。

标签: apache http http-headers ubuntu-10.10


【解决方案1】:

问题可能是由于您的浏览器缓存了原始 CSS 文件并尝试请求新文件的字节范围。参见例如this bug with Chrome

至于禁用范围请求,如果您清除浏览器缓存可能没有必要,但如果您需要它,您可以尝试以下 Apache 配置:

Header unset Accept-Ranges

这将告诉客户端他们不能使用 Range 请求标头来请求文件的字节范围。

【讨论】:

    【解决方案2】:

    我的 .htaccess 文件顶部有

    Header set Accept-Ranges none
    RequestHeader unset Range 
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      拦截从您的 ISP 返回的标头并验证您是否收到 416 状态代码。如果是这样,请拦截您发送给 ISP 的标头并删除范围标头;这应该会强制服务器向您发送整个文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-28
        • 2017-07-26
        • 2014-06-03
        • 2017-08-09
        • 2021-08-07
        • 2021-01-04
        • 2020-11-29
        • 2016-04-28
        相关资源
        最近更新 更多