plugin - ¿Cómo se desactiva la compresión Apache gzip para algunos archivos multimedia en el archivo.htaccess?
plugin para compresion gzip (6)
Creo que no estás usando compresión en tus medios. ¿Verificaste que de hecho estás desinflando archivos? El módulo se puede cargar en la memoria, pero eso no significa que esté comprimiendo archivos. Si su .htaccess solo tiene reglas de reescritura, es probable que no esté comprimiendo ningún tipo de contenido.
Me gustaría desactivar la compresión gzip para algunos archivos multimedia que ya están comprimidos en un servidor Apache a través del archivo .htaccess
.
Motivo: tal como está escrito en el sitio de jPlayer , la codificación gzip debe deshabilitarse para los archivos multimedia: "Los archivos multimedia ya están comprimidos y el GZIP solo desperdiciará la CPU en su servidor. El complemento Adobe Flash tendrá problemas si usa GZIP en los medios".
Actualmente tengo el problema de que el encabezado Content-Length
no está configurado correctamente cuando gzip está habilitado, por lo que cuando reproduces algunos archivos mp3 con un reproductor SoundManager2 , la barra de progreso de la duración de la pista no funciona de forma adecuada (quizás ese es el problema dicho en el sitio de jPlayer).
Puedo probar si un contenido se sirve gzip aquí .
Tengo módulos mod_deflate
, mod_mime
y mod_rewrite
habilitados en el servidor.
Según un phpinfo (), aquí hay una lista de todos los módulos cargados:
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
Estoy usando Drupal 6, así que ya tengo RewriteRule , que es el siguiente:
# 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=$1 [L,QSA]
Ya he probado esto para deshabilitar gzip, pero no funcionaron (¡hay 6 intentos diferentes! - tal vez algunos de ellos deberían establecerse globalmente en httpd.conf de Apache ?!):
# 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)$ $1.mp3 [NS,E=no-gzip:1,E=dont-vary:1]
El único que funciona correctamente e inhabilita la compresión gzip, PERO es global :
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
Cabeceras de respuesta para un archivo mp3 cuando NO se usa esta RewriteRule: http://pastebin.com/AkUZ6m5Y
Encabezados de respuesta para un archivo mp3 al usar este RewriteRule: http://pastebin.com/b8j3NF6D
¿No va por el camino equivocado usando la directiva SetOutputFilter DEFLATE
y luego tratando de desactivar esto para la transmisión que ya incluye alguna forma de compresión? ¿No es mucho más fácil no usar esta directiva y luego comprimir la corriente que es compresible? P.ej
<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>
Y posiblemente agregue un encabezado Vary:
<IfModule mod_headers.c>
<FilesMatch "/.(js|css|xml|html)$">
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
De acuerdo, puede pasar por alto un tipo extraño que no haya pensado, pero obtendrá un 99% de su potencial de compresión.
Tuve que deshabilitar la compresión de los archivos odp para usar con un plugin externo. Simplemente agregué la siguiente regla en el archivo .htaccess.
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI /.odp$ no-gzip dont-vary
Y el servidor deshabilitó la compresión de los archivos odp Asegúrese de borrar la memoria caché del navegador antes de probar
esto parece obsoleto: https://www.varnish-cache.org/docs/3.0/tutorial/compression.html#gzip-and-esi
GZIP y ESI
Si está utilizando Edge Side Includes, le complacerá observar que ESI y GZIP funcionan muy bien juntos. Varnish descompondrá mágicamente el contenido para hacer el procesamiento de ESI, luego lo recomprimirá para un almacenamiento y entrega eficientes.
Para desactivar la compresión gzip en solo archivos de Adobe Flash Player (SWF) en mi servidor Apache, agregué esto a mi archivo .htaccess:
<IfModule mod_headers.c>
<FilesMatch "/.swf$">
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
</FilesMatch>
</IfModule>
Si lo desea, también podría desactivar la compresión gzip para otros tipos de archivos:
<IfModule mod_headers.c>
<FilesMatch "/.(js|css|swf)$">
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
</FilesMatch>
</IfModule>
Sé que este hilo es viejo, pero he seguido el mismo camino.
Dos cosas que he hecho.
Permití .htaccess y deshabilité gzip para una carpeta completamente.
<Files "*.gz.asc"> RemoveEncoding .gz </Files>
poner una regla reqwrite para deshabilitar
RewriteRule "/.js/.gz$" "-" [T=text/javascript,E=no-gzip:1]
Ambos funcionaron para mí, sugeriría ir primero a la documentación de Apache antes de buscar en los foros.
Para obtener más información, visite el sitio web de Apache.
https://httpd.apache.org/docs/2.4/mod/mod_deflate.html https://httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype