2009-08-06 9 views
5

Meine Website ist gezippt komprimiert, und es wird nicht ordnungsgemäß in IE geladen. Es funktioniert gut in FF/Chrome, aber in IE, ist das einzige, was auftaucht, eine Box, die fragt, die .gz-Datei herunterzuladen, die das HTML-Dokument für die Seite enthält.Warum funktioniert die Gzip-Komprimierung mit Internet Explorer nicht?

Ist das normal? Muss ich gzip ausschalten?

+1

Welche Version von Internet Explorer? – Mez

+0

IE 7. habe noch nicht auf 6 oder 8 getestet – chris

Antwort

16

Senden Sie die richtigen Header?

Sie benötigen die

Content-Encoding: gzip 

Header senden für IE zu verstehen, dass es gzip ist (Firefox, et al sind intelligent genug, um dies automatisch zu erkennen - auch wenn sie es nicht sollten!)

in PHP, können Sie dies mit: -

header('Content-Encoding: gzip'); 
+3

header ("Content-Encoding: gzip"); – danamlund

+0

Danke Leute, die hilfreich waren – chris

+7

"Das automatisch zu erkennen" ist nicht legal. – EricLaw

0

ich Probleme habe gesehen, wenn mit dem Internet Explorer auf einer Seite mit gzip, die Flash auf sich. Wenn Ihre Seite blinkt, kann dies der Grund sein. Ich erinnere mich nicht an die Ursache und zu der Zeit, als wir es gefunden haben, verursachte es Probleme auf einer Live-Site, also haben wir nur Gzip für Internet Explorer deaktiviert, um es zu umgehen.

+1

Dies ist ein gültiger Kommentar, IE6, wenn es "Vary" Header zusammen mit Content-Encoding sieht als gzip es nicht die vollständige Antwort abrufen kann. – shivaspk

7

Eine Sache hinzuzufügen - Sie sollten Gzip-Komprimierung für IE6 Pre-SP2 ausschalten. Vor SP2 liest und archiviert der IE6 nicht immer korrekt gezippten Inhalt, und Sie werden mit fehlerhaftem Code konfrontiert.

Sie können eine IE6 SP2-Installation identifizieren, indem Sie in der User-Agent-Zeichenfolge nach "SV1" suchen.

0

Die HTTP-Header sind das Problem. Wenn Sie die gzip-Header zusammen mit einem der folgenden haben:

  • Vary
  • Übertragung Encoding: Chunked

eine oder beide müssen entfernt werden.

Dieses Problem tritt eher auf einem Computer auf, auf dem Apache HTTP Server ausgeführt wird, da Apache HTTP Server die Chunked-Codierung für jede Art von Datei verwenden kann. Dies umfasst statische Dateien wie eine JavaScript-Datei oder eine GIF-Datei. Wenn das Problem auftritt, das in diesem Artikel beschrieben wird, wird der Inhalt, der in dem Internet Explorer-Cache gespeichert wird, möglicherweise abgeschnitten oder beschädigt.

für XML, XHTML und XSLT-Dateien verhindern Parsen als text/html oder text/xsl:

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

Und fügen application/xml als Inhaltstypzuordnung:

AddType application/xml .xsl 

Referenzen

Verwandte Themen