Ich habe einige Probleme, die mod_deflate daran hindern, in dieses Szenario hineinzuspringen:
Die Sache ist, dass Apache immer den Inhalt als php
erkennt und daher etwas wie die Zeilen nicht funktionieren , da der Server die ZIP-Datei als PHP-Datei ansieht.
Irgendwelche Ideen, wie ich Apache von einer HTML-Datei oder einer ZIP-Datei unterscheiden kann, die beide von der gleichen index.php
-Rahmendatei erzeugt werden.
Bearbeiten:
Apache-Protokoll
Bearbeiten:
CI-Controller, der die zip
Selbst wenn alle Antworten in einem vernünftigen Szenario perfekt gültig waren (und tatsächlich getestet wurden, bevor die Frage gestellt wurde), ist der Grund, warum ich Apache nicht anweisen konnte, eine Datei nach MIME-Typ zu deflationieren, unbekannt.
Ich konnte es wie gewünscht funktionieren lassen, indem ich folgende Anweisungen in das Skript erzwinge:
%Vor%Ich verstehe, dass dies ein Hot Patch ist und nicht die Wurzel des Problems anspricht, aber bis jetzt muss das ausreichen. Da es andere gibt, die die gleiche Flagge treffen, bleibt der obige Code hier als Referenz in einer schmutzigen Reparatur.
Sie können entweder:
AddOutputFilterByType
und geben Sie nur die gewünschten Inhaltstypen an filtern; oder mod_filter
. In FilterProvider
können Sie eine Regel angeben, die den Filter beim Zip-Inhaltstyp ausschließt ( application/zip
) wird in den Antwortheadern gefunden. Sie können mod_rewrite
verwenden, um den Pantomime-Typ zu ändern die Anfrage auf der Apache-Ebene:
Platziere es über den Regeln des Frameworks, allerdings muss dies dazu führen, dass DEFLATE von MIME-Typ und nicht von Dateierweiterung abhängig ist, wie du es mit <FilesMatch>
tust.
Wahrscheinlich funktioniert es gut zusammen mit
%Vor% anstelle der <FilesMatch>
-Richtlinie.
Bearbeiten: Das L-Flag, das im .htaccess-Kontext verwendet werden soll, wurde hinzugefügt und zusätzlich DEFLATE über die Umgebungsvariable no-gzip deaktiviert.
Anstatt
zu verwenden %Vor%Verwenden Sie diese Konfiguration zum Festlegen von Komprimierungsregeln.
%Vor%Auf diese Weise wird Ihre Ausgabe nur komprimiert, wenn der Inhaltstyp mit den obigen Anweisungen übereinstimmt.
Der CI-Controller, der die ZIP-Datei bedient, sendet bereits den richtigen Content-Type-Header, so dass dieser nicht komprimiert wird.
%Vor%Tags und Links php apache mod-deflate