背景:我正在使用一个名为Social Engine的软件包。它有很多bug。
无论如何,我要求(甚至付钱)社会引擎的人做一个升级,当他们终于这样做了,我登录到网站,发现所有的风格都不见了。我打开了客服单,他们告诉我这是一个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。还是没有成功。
是不是他们的软件有什么问题需要我去修补?
这个问题可能是由于您的浏览器缓存了原始CSS文件并试图请求新文件的字节范围。请看Chrome的这个bug。
至于禁用范围请求,如果您清除浏览器缓存可能没有必要,但如果您需要它,您可以尝试以下Apache配置:
Header unset Accept-Ranges
这将告诉客户端他们不能使用Range
请求头来请求文件的字节范围。
在我的。htaccess文件的顶部
Header set Accept-Ranges none
RequestHeader unset Range
拦截从您的ISP返回的报头并验证您正在获得416状态码。如果是这样,拦截你发送给你的ISP的头,并删除范围头;这将强制服务器向您发送整个文件。