我正在使用下面的代码,当我访问网站时,它只压缩所有在/ abc下的所有URLpath的jsp,但它忽略了所有的js和css文件。 我想要在/ abcpath中的所有子文件夹下压缩js和css文件? 我如何做到这一点。 谢谢! <LocationMatch "/abc"> <IfModule mod_deflate.c> SetOutputFilter DEFLATE # Don't compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary #Don't compress PDFs SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary #Don't compress compressed file formats SetEnvIfNoCase Request_URI \.(?:7z|bz|bzip|gz|gzip|ngzip|rar|tgz|zip)$ no-gzip dont-vary <IfModule mod_headers.c> Header append Vary User-Agent </IfModule> </IfModule> </LocationMatch>
我在我的htaccess中设置了deflate。 一切工作正常, 除了某些原因JavaScript文件被忽略。 我尝试了所有可能的AddOutputFilterByType DEFLATE与多个MIMEtypes的组合,但都没有效果。 它不是一个caching的问题,它实际上让我相信这是工作,直到我回家了一个双重检查。 目前我正在使用这个工具 ,网站在这里 。 你可以清楚地看到,除了js文件之外,所有东西都被压缩了(不像从google和css文件中的js,缺less正确的Content-Encoding)。 这是我目前的htaccess文件: <FilesMatch "\.(tpl|ini|log)"> Order deny,allow Deny from all </FilesMatch> <FilesMatch "\.(js|css)$"> SetOutputFilter DEFLATE # Netscape 4.x has some problems… BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSIE !no-gzip !gzip-only-text/html […]
我在Redhat Enterprise Linux 5.8 x86_64标准框上运行Apache 2,似乎无法启用mod_deflate。 这是一个WHM安装,所以我正在修改其中一个WHM自动更改的包含文件。 我已经validation了我正在编辑正确的文件。 我已经将LoadModule指令添加到configuration文件中: LoadModule deflate_module modules/mod_deflate.so 但是我找不到(用apachectl -l检查)
我通过Justhost共享主机。 我使用HTML5 Boilerplate .htaccess(试过其他方法,从这里到那里都没有运气)压缩部分如下: <IfModule mod_deflate.c> # Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/ <IfModule mod_setenvif.c> <IfModule mod_headers.c> SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding </IfModule> </IfModule> # Compress all output labeled with one of the following MIME-types <IfModule mod_filter.c> AddOutputFilterByType DEFLATE application/atom+xml \ application/javascript \ application/json \ application/rss+xml \ application/vnd.ms-fontobject \ application/x-font-ttf \ […]
我正在Fedora(14)上运行mod_pagespeed的Apache,我得到错误消息: [error] an unknown filter was not added: DEFLATE 很多。 我知道这是因为mod_deflate没有加载,但是这很好,我不想加载它(负载平衡器照顾gzipping等等,当web服务器上放气时,我们得到意想不到的结果) 但是我不知道它在哪里被引用,我用这个命令来查看/ etc / httpd中的所有文件 find . -type f -exec grep -li "deflate" {} \; 更新该命令也searchconf.d subdir – 我用类似的东西来查看所有的服务器上的.htaccess文件 find . -type f -name ".htaccess" -exec grep -li "deflate" {} \; 并且唯一的引用是在.conf文件中,并且它们用# (apache已经重新启动) 更新来注释掉 # LoadModule deflate_module modules/mod_deflate.so 我怎样才能find它被引用的地方,并删除它? 更新我试图运行a2enmod和a2dismod ,但没有这样的命令。 yum install a2dismod没有find任何安装。 这些命令的名称和/etc/apache2/mods-enabled了/etc/apache2/mods-enabled目录我只能在ubuntu上find,我不知道相当于fedora […]
我正在使用HTTP PUT请求在我的服务器上接收xml文件。 如果我的Apacheconfiguration了mod_deflate,它在传输过程中是否被压缩? 我怎样才能确认它是压缩? 如果不是,我该如何强制压缩? 谢谢!
我刚刚意识到我的明显问题(以及我在前面提到的问题中提到的StackOverflow问题中的“解决scheme” Content-Encoding: none )很可能只是由于误解实际上是如何工作的。 请在最后查看我的附录。 在我正在构build的PHP应用程序中,我试图pipe理自己的内容编码协商和压缩。 当我将响应头Content-Encoding从PHP内部设置为gzip或deflate ,Apache尊重这一点。 但是,当我将其设置为identity Apache忽略这一点,并压缩响应。 它似乎只尊重非标准的Content-Encoding: none ,因为我在这个堆栈溢出问题的一些答案和他们的评论中发现。 因此,我现在把它设置为none ,从PHP内部,然后通过.htaccess更改标题: Header edit Content-Encoding ^none$ identity …但这真的感觉像一个丑陋的黑客。 我希望我不必这样做,以防万一我切换服务器,例如。 这是一个已知的问题和/或这种非标准的行为logging在某处? 我似乎无法find任何具体的文件。 我也search了Apache的bug追踪器 ,但只能find一个切线相关的bug报告 ,关于Apache不尊重Accept-Encoding头值。 附录 当我在.htaccess禁用Apache的mod_deflate时(还有其他选项可以做到这一点): SetEnv no-gzip 1 …并在PHP中设置Content-Encoding: identity ,Apache保持这个标题和内容完好,就好了。 因此,这是我认为实际发生的事情: 这不是Content-Encoding: none官方的信号给Apache来禁止压缩( Content-Encoding: bogus ,例如,产生相同的结果),这将解释为什么我找不到任何文档。 相反,它只是一个不是RFC标准的值。 因此mod_deflate保持内容不变,假设它是一些不想要干扰的非标准编码。 所以,当我在PHP中设置Content-Encoding: identity ,mod_deflate可能认为这是一个有效的RFC标准,意味着内容还没有被压缩,而且由于启用了mod_deflate,所以继续压缩它。 此外,如果我将Content-Encoding设置为gzip或deflate ,例如,mod_deflate可能会将其完全保留,或尝试压缩,但压缩algorithm会识别内容已被压缩。 也许有人可以证实这是否是对实际发生的事情的正确解释? 所以,一个可能的解决scheme是要么禁用我的PHP应用程序pipe理的一些选定的文件/path的mod_deflate,要么如果我的内容已经以其他方式压缩了,甚至可以禁用mod_deflate /站点范围/服务器范围。
Apache与mod_deflate(无用)压缩甚至空(PHP生成)302redirect响应,添加一个20字节的响应主体。 现代的浏览器可以这样,但IE6似乎随机窒息了20个字节。 有没有办法configurationmod_deflate来忽略空的响应(或至less200响应)? 注意:我知道我可以禁用通过SetEnvIfNoCase和BrowserMatch放气,但我真的想禁用它只是为了什么是错的:压缩空响应。
mod_deflate的官方文档可以工作,并且在我的serveR中给了我很好的结果。 有人build议在生产机器上使用吗? http://httpd.apache.org/docs/2.2/mod/mod_deflate.html#recommended <Location /> # Insert filter SetOutputFilter DEFLATE # Netscape 4.x has some problems… BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure […]
有没有办法在Apache2的每个站点基础上禁用deflate模块? 我有一个传统的网站,使用自定义MIMEtypes服务器端包括正在打破放气模块启用。 我的猜测是包含的文件被encryption两次:包括一次,然后再发送响应。 我可以将Apache2的deflate模块作为一个整体禁用,问题消失,但我宁愿不要求为所有站点禁用。 有没有人有任何成功使用Apache conf指令禁用deflate? UPDATE 我已经使用SetEnv no-gzip 1成功地禁用了虚拟站点的DEFLATE: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName www.domain.com DocumentRoot /var/www/domain.com/www/ ErrorDocument 404 /404.html ScriptAlias /cgi-bin/ /var/www/cgi-bin/ SetEnv no-gzip 1 <Directory /> Options +Includes SetOutputFilter INCLUDES AcceptPathInfo On AddType text/x-jbase-html .jhtml Action text/x-jbase-html /cgi-bin/jBase.pl </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # […]