Apache2 gzip 不工作?

Apache2 gzip 不工作?

我几乎尝试了互联网上的所有方法,但gzip似乎都不管用。我尝试了太多方法,不可能把所有尝试都放在这里,所以以下是我尝试过的一些方法:

我尝试将它添加到我的中.htaccess,我也尝试将它添加到我的中apache2.conf并重新启动 apache。

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

它们都不起作用。我在装有 Apache 的 AWS EC2 Ubuntu 服务器上。

答案1

我终于找到答案了!

这段代码是这样的:

SetEnvIfExpr no-gzip

它在我的 apache2.conf 文件中。一旦我删除该代码,它就可以正常工作!

答案2

Apache2 说:

另一项指令按类型添加输出过滤器仍受支持,但已弃用。请改用动态配置。

首先我认为最好使用添加输出过滤器指示。


然而解决方案发现如何在 Apache 上启用 gzip 压缩显示足够的新方法来配置mod_deflate

看起来像:

<IfModule mod_mime.c>
 AddType application/x-javascript .js
 AddType text/css .css
</IfModule>
<IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
  <IfModule mod_setenvif.c>
   SetEnvIfNoCase Request_URI \.(?:rar|zip)$ no-gzip dont-vary
   SetEnvIfNoCase Request_URI \.(?:gif|jpg|png)$ no-gzip dont-vary
   SetEnvIfNoCase Request_URI \.(?:avi|mov|mp4)$ no-gzip dont-vary
   SetEnvIfNoCase Request_URI \.mp3$ no-gzip dont-vary
  </IfModule>
 <IfModule mod_headers.c>
  Header append Vary User-Agent env=!dont-vary
 </IfModule>
</IfModule>

阅读主题以了解变化。


Apache 1.3mod_gzip模块的示例含义如下:

  <ifModule mod_gzip.c>
    mod_gzip_on Yes
    mod_gzip_dechunk Yes
    mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
    mod_gzip_item_include handler ^cgi-script$
    mod_gzip_item_include mime ^text/.*
    mod_gzip_item_include mime ^application/x-javascript.*
    mod_gzip_item_exclude mime ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
  </ifModule>

查看更多/在此处找到

我个人认为非常老旧的浏览器并不是很可靠的一部分.htaccess……

相关内容