Я хотел бы отключить сжатие gzip для некоторых медиафайлов, которые уже сжаты на сервере Apache через файл .htaccess
.
Причина: как написано напр. jPlayer site, gzip-кодировка должна быть отключена для медиафайлов: "Медиа файлы уже сжаты, а GZIP будет просто расточительным CPU на вашем сервере. Плагин Adobe Flash будет испытывать проблемы, если вы GZIP-носители".
В настоящее время у меня проблема с тем, что заголовок Content-Length
неправильно установлен, когда включен gzip, поэтому при воспроизведении некоторых mp3 файлов с SoundManager2, индикатор выполнения трека не работает должным образом (возможно, проблема, о которой они рассказали на сайте jPlayer).
Я могу проверить, поддерживается ли контент gzipped здесь.
У меня есть модули mod_deflate
, mod_mime
и mod_rewrite
, включенные на сервере.
Согласно phpinfo(), вот список всех загруженных модулей:
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
Я использую Drupal 6, поэтому у меня уже есть RewriteRule, который выглядит следующим образом:
# 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]
Я уже пытался отключить gzip, но они не работали (есть 6 разных попыток!), возможно, некоторые из них должны быть установлены глобально в 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)$ $1.mp3 [NS,E=no-gzip:1,E=dont-vary:1]
Единственный, который работает правильно и отключает сжатие gzip, НО он глобальный:
-
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
Ответные заголовки для mp3 файла, когда НЕ используют этот RewriteRule: http://pastebin.com/AkUZ6m5Y
Ответные заголовки для mp3 файла при использовании этого RewriteRule: http://pastebin.com/b8j3NF6D