Sk8*_*ter 17 apache .htaccess mod-rewrite drupal apache2
我想对已经通过该.htaccess文件在Apache服务器上压缩的一些媒体文件禁用gzip压缩.
原因:因为它写在例如jPlayer的网站上,应该禁用媒体文件的gzip编码:"媒体文件已经被压缩,GZIP只会在你的服务器上浪费CPU.如果你GZIP媒体,Adobe Flash插件会遇到问题."
我目前遇到的问题Content-Length是,当启用gzip时未正确设置标头 - 所以当使用SoundManager2播放器播放一些mp3文件时,音轨的长度进度条不能正常工作(所以也许这就是他们讲述的问题jPlayer的网站).
我可以测试是否在这里为gzip提供内容.
我有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
Run Code Online (Sandbox Code Playgroud)
我正在使用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]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这些来禁用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
Run Code Online (Sandbox Code Playgroud)## 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>
Run Code Online (Sandbox Code Playgroud)RemoveOutputFilter mp3
Run Code Online (Sandbox Code Playgroud)# for files that end with ".mp3"
<FilesMatch \.mp3$>
SetEnv no-gzip 1
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)RewriteRule \.mp3$ - [NS,E=no-gzip:1,E=dont-vary:1]
Run Code Online (Sandbox Code Playgroud)RewriteRule ^((.*)\.mp3)$ $1.mp3 [NS,E=no-gzip:1,E=dont-vary:1]
Run Code Online (Sandbox Code Playgroud)唯一一个正常工作,并禁用gzip压缩,但它是全局的:
RewriteRule ^(.*)$ $1 [NS,E=no-gzip:1,E=dont-vary:1]
Run Code Online (Sandbox Code Playgroud)不使用此RewriteRule时mp3文件的
响应标头:http://pastebin.com/AkUZ6m5Y使用此RewriteRule时mp3文件的
响应标头:http://pastebin.com/b8j3NF6D
小智 8
我必须禁用odp文件的压缩以供外部插件使用.在.htaccess文件中添加了以下规则
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.odp$ no-gzip dont-vary
Run Code Online (Sandbox Code Playgroud)
并且服务器禁用了odp文件的压缩 确保在测试之前清除浏览器缓存
我认为您没有在媒体中使用压缩。您是否检查过您实际上正在压缩文件?该模块可以加载到内存中,但这并不意味着它会压缩文件。如果您的 .htaccess 仅具有重写规则,那么您可能没有压缩任何类型的内容。