为什么使用Internet Explorer进行gzip压缩无法正常工作?

时间:2009-08-06 22:13:28

标签: php internet-explorer

我的网站是压缩的,并且在IE中无法正确加载。它在FF / Chrome中运行良好,但在IE中,弹出的唯一内容是要求下载包含该页面的html文档的.gz文件的框。

这是正常的吗?我必须关闭gzip吗?

4 个答案:

答案 0 :(得分:16)

您是否正在发送正确的标题?

您需要发送

Content-Encoding: gzip

标题让IE了解它是gzip(Firefox,等人足够聪明,可以自动检测到它 - 即使它们不应该!)

在PHP中,您可以使用以下方法执行此操作: -

header('Content-Encoding: gzip');

答案 1 :(得分:7)

要添加的一件事 - 你应该关闭IE6 SP2之前的gzip压缩。在SP2之前,IE6并不总是正确地读取和缓存gzip压缩内容,最终会导致代码被破坏。

您可以通过在用户代理字符串中查找“SV1”来识别IE6 SP2安装。

答案 2 :(得分:0)

我在使用带有闪存的页面上使用带有Internet Explorer的gzip时遇到了问题。如果您的页面有闪存,这可能是原因。我不记得原因,当时我们发现它在现场导致问题,所以我们只是禁用了Internet Explorer的gzip来解决它。

答案 3 :(得分:0)

HTTP标头是个问题。如果你有gzip标题以及以下之一:

  • 因人而异
  • 传输编码:Chunked

需要删除其中一个或两个。

  

在运行Apache HTTP Server的计算机上更可能发生此问题,因为Apache HTTP Server可以在任何类型的文件上使用分块编码。这包括静态文件,如JavaScript文件或.gif文件。当发生本文中描述的问题时,Internet Explorer缓存中存储的内容可能会被截断或损坏。

对于XML,XHTML和XSLT文件,阻止解析为text / html或text / xsl:

    RewriteCond %{HTTP_ACCEPT} text\/html [OR]
    RewriteCond %{HTTP_ACCEPT} text\/xsl [OR]
    RewriteCond %{HTTP_ACCEPT} gif|jpeg|png$
    ReWriteRule .*\.(xsl|xslt)$ - [F]

并添加application/xml作为内容类型映射:

    AddType application/xml .xsl

<强>参考