416请求范围不满意

时间:2011-05-05 00:38:13

标签: apache http http-headers ubuntu-10.10

背景信息:我正在使用名为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服务器(运行安装了APC扩展的最新Apache和PHP5)上看不到任何关于转换范围请求的建议。也许这是一个软件问题?有些APC的缓存工作正常吗?我将此软件中的缓存重置为60秒,并确保它使用的是APC。仍然没有骰子。

他们的软件可能正在做什么,我需要考虑修补?

3 个答案:

答案 0 :(得分:10)

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

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

Header unset Accept-Ranges

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

答案 1 :(得分:6)

我在.htaccess文件的顶部

Header set Accept-Ranges none
RequestHeader unset Range 

希望这会有所帮助。

答案 2 :(得分:3)

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