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: como está escrito en p. jPlayer's site, la codificación gzip debe estar deshabilitada para los archivos de medios: "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".Cómo desactivar la compresión Apache gzip para algunos archivos multimedia en el archivo .htaccess?
Actualmente estoy teniendo el problema de que Content-Length
cabecera no se establece correctamente cuando gzip está activado - por lo que cuando se reproduce algunos archivos MP3 con un reproductor de SoundManager2, barra de progreso de la longitud de la pista no funciona adecuadamente (y quizás por el problema del que hablaron en el sitio de jPlayer).
Puedo probar si se sirve un contenido con gzip here.
Tengo mod_deflate
, mod_mime
y mod_rewrite
módulos habilitados en el servidor.
Según un phpinfo(), aquí es 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, por lo ya tengo un 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 intentado desactivar estos gzip, pero no funcionó (hay 6 intentos diferentes - tal vez algunos de ellos tendría que ser establecido a nivel mundial en Apac él es 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)$ $1.mp3 [NS,E=no-gzip:1,E=dont-vary:1]
La única que funciona correctamente, y desactiva la compresión gzip, pero es mundial:
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
cabeceras de respuesta para un archivo MP3 SIN utilizar este RewriteRule: http://pastebin.com/AkUZ6m5Y
Cabeceras de respuesta para un archivo mp3 cuando se usa esta RewriteRule: http://pastebin.com/b8j3NF6D
Si los archivos de medios están en una carpeta diferente, usted podría poner el .htaccess con la línea de trabajo en esa carpeta, y no afectan a otras partes de la página web. – Gerben
+1, es una solución posible, pero no es del todo seguro que mis archivos multimedia entren en un directorio determinado, por lo que me gustaría hacerlo más "flexible". :) – Sk8erPeter
@SkBerPeter - ¿Tiene algunas reglas mod_rewrite que usan el indicador [L]? Hacer que la reescritura funcione en un archivo .htaccess (a diferencia de un archivo .conf donde ocurriría mucho más temprano) es un kludge gigante, que entre otras cosas cambia ligeramente la acción de la [L]. En lugar de salir, el [L] vuelve a la parte superior del .htaccess y, como efecto secundario, se borran todas las variables de entorno. Quizás es por eso que configuraste "no-gzip", pero cuando se hace referencia a él, parece que ya no está establecido. Si está disponible (2.3.9 y posterior) quizás el indicador [END] funcione mejor. –