Comment désactiver la compression Apache gzip pour certains fichiers multimédia.fichier htaccess?

je voudrais désactiver la compression gzip pour certains fichiers multimédia qui sont déjà compressés sur un serveur Apache via le .htaccess fichier.

Raison: comme il est écrit sur, par exemple, site de jPlayer, gzip codage doit être désactivée pour les fichiers de média: "les fichiers multimédia sont déjà compressés et le GZIP ne fera que gaspiller du CPU sur votre serveur. Le Plugin Adobe Flash connaîtra des problèmes si vous GZIP les médias."

je suis actuellement le problème Content-Length en-tête n'est pas correctement définie lorsque gzip est activée - si lors de la lecture de certains fichiers mp3 avec un SoundManager2 player, la barre de progression de la longueur de la piste ne fonctionne pas correctement (donc c'est peut-être le problème dont ils ont parlé sur le site de jPlayer).

je peux tester si un contenu est servi gzipped ici.

J'ai mod_deflate,mod_mime et mod_rewrite modules activés sur le serveur.

Selon un phpinfo(), voici une liste de tous les modules chargés:

core mod_log_config mod_logio itk http_core mod_so mod_alias mod_auth_basic mod_authn_file mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dav mod_dav_svn mod_authz_svn mod_deflate mod_dir mod_env mod_mime mod_negotiation mod_php5 mod_reqtimeout mod_rewrite mod_setenvif mod_ssl mod_status

j'utilise Drupal 6, donc j'ai déjà un RewriteRule, qui est la suivante:

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q= [L,QSA]

j'ai déjà essayé de désactiver gzip, mais ça n'a pas marché (il y a 6 essais différents! - peut-être que certains d'entre eux devraient être établies à l'échelle mondiale dans Apache httpd.conf?!):

  • # http://www.cyberciti.biz/tips/speed-up-apache-20-web-access-or-downloads-with-mod_deflate.html
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .avi$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .mov$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .mp3$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .mp4$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .rm$ no-gzip dont-vary    
    
  • ## Step 2. here: http://www.mydigitallife.info/how-to-enable-mod_deflate-gzip-compression-on-cpanel-web-hosts/
    <IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    
    RemoveOutputFilter mp3
    # Don’t compress already-compressed files
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .(?:avi|mov|mp3|mp4|rm|flv|swf|mp?g)$ no-gzip dont-vary
    SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary
    </IfModule>
    
  • RemoveOutputFilter mp3
    
  • # for files that end with ".mp3"
    <FilesMatch .mp3$>
    SetEnv no-gzip 1
    </FilesMatch>
    
  • RewriteRule .mp3$ - [NS,E=no-gzip:1,E=dont-vary:1]
    
  • RewriteRule ^((.*).mp3)$ .mp3 [NS,E=no-gzip:1,E=dont-vary:1]   
    

Le seul qui fonctionne correctement, et désactive la compression gzip, MAIS c'est global:

  • RewriteRule ^(.*)$  [NS,E=no-gzip:1,E=dont-vary:1]
    

en-têtes de réponse pour un fichier mp3 Lorsque vous N'utilisez pas cette règle de réécriture: http://pastebin.com/AkUZ6m5Y

En-têtes de réponse pour un fichier mp3 lors de l'utilisation de cette règle de réécriture:http://pastebin.com/b8j3NF6D

14
demandé sur Sk8erPeter 2012-02-12 17:45:12

6 réponses

j'ai dû désactiver la compression pour les fichiers odp à utiliser par un plugin externe Juste d'ajouter la règle suivante .fichier htaccess

SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.odp$ no-gzip dont-vary

et le serveur a désactivé la compression pour les fichiers odp assurez-vous de vider le cache du navigateur avant de tester

5
répondu Lohith 2014-05-15 13:52:41

vous ne vous y prenez pas mal en utilisant la directive SetOutputFilter DEFLATE et ensuite essayer de désactiver ce flux qui comprend déjà une certaine forme de compression? N'est-il pas beaucoup plus facile pour utiliser cette directive et compresser le flux compressible. E. g.

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript application/ecmascript application/rss+xml
</IfModule>

Et, éventuellement, l'ajout d'un en-tête Vary:

<IfModule mod_headers.c>
    <FilesMatch "\.(js|css|xml|html)$">
        Header append Vary Accept-Encoding
    </FilesMatch>
</IfModule>

OK cela peut manquer le type Impair que vous n'avez pas pensé, mais il atteindra 99+ % de votre potentiel de compression.

1
répondu TerryE 2012-02-22 14:05:05

je pense que vous n'êtes pas en utilisant la compression de vos médias. Avez-vous vérifié que vous dégonflez des fichiers? Le module peut être chargé en mémoire, mais cela ne veut pas dire qu'il comprime des fichiers. Si votre .htaccess n'a que des règles de réécriture.

0
répondu Javier Constanzo 2012-02-12 14:37:34

cela semble dépassé : https://www.varnish-cache.org/docs/3.0/tutorial/compression.html#gzip-and-esi

GZIP et ESI

si vous utilisez Edge Side Includes vous serez heureux de noter que ESI et GZIP fonctionne très bien ensemble. Vernis magie décompresser le contenu pour faire le traitement ESI, puis le recomprimer pour le stockage et la livraison.

0
répondu Bruno 2017-01-05 14:55:05

pour désactiver la compression gzip sur les fichiers Flash D'Adobe (SWFs) sur mon serveur Apache, j'ai ajouté ceci à mon .htaccess:

<IfModule mod_headers.c>
    <FilesMatch "\.swf$">
        RewriteRule ^(.*)$  [NS,E=no-gzip:1,E=dont-vary:1]
    </FilesMatch>
</IfModule>

Si vous voulez, vous pouvez désactiver la compression gzip pour d'autres types de fichiers ainsi:

<IfModule mod_headers.c>
    <FilesMatch "\.(js|css|swf)$">
        RewriteRule ^(.*)$  [NS,E=no-gzip:1,E=dont-vary:1]
    </FilesMatch>
</IfModule>
0
répondu totallytotallyamazing 2017-02-10 00:07:55

je sais que ce fil est vieux, mais je suis passé par le même chemin.

Deux choses que j'ai fait.

  1. j'ai activé .htaccess et gzip désactivé complètement pour un dossier.

    <Files "*.gz.asc">
         RemoveEncoding .gz
     </Files>
    
  2. mettre une règle reqwrite pour désactiver

    RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1] 
    

les deux ont fonctionné pour moi, je suggérerais d'aller d'abord à la documentation Apache Avant de chercher sur les forums.

pour plus d'information, allez à Apache site.

https://httpd.apache.org/docs/2.4/mod/mod_deflate.html https://httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype

-1
répondu Rakesh 2017-02-23 21:46:47