我怎样才能获得Apache gzip压缩的工作?(How can I get Apache gzip

2019-06-18 03:03发布

我不能让我的网站使用gzip压缩。

我最近看了这个视频由克里斯Coyier了在css-tricks.com。 在视频中,他谈到启用gzip压缩,使网站运行得更快。

按照他的指示,我通过html5boilerplate.com通过连接到github上,从他们的.htaccess文件中复制的gzip压缩代码,粘贴到我自己,并将其上传到我的网站。

我已经通过gzipwtf.com测试,它似乎并没有工作。 谁能帮我这个?

我的.htaccess文件看起来是这样的:

# ----------------------------------------------------------------------
# Trim www
# ----------------------------------------------------------------------

RewriteEngine On
RewriteCond %{HTTP_HOST} !^orbitprint.com$ [NC]
RewriteRule ^(.*)$ http://orbitprint.com/$1 [L,R=301]

# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------

<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 \
                                  application/xhtml+xml \
                                  application/xml \
                                  font/opentype \
                                  image/svg+xml \
                                  image/x-icon \
                                  text/css \
                                  text/html \
                                  text/plain \
                                  text/x-component \
                                  text/xml
  </IfModule>

</IfModule>

Answer 1:

试试这个 :

####################
# GZIP COMPRESSION #
####################
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip


Answer 2:

这是更好地实现它,如下面的代码片段。

只需粘贴下面的内容在你.htaccess文件,然后,检查使用性能: 谷歌的PageSpeed , Pingdom的工具和GTmetrics 。

# Enable GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifmodule>

# Expires Headers - 2678400s = 31 days
<ifmodule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 7200 seconds"
  ExpiresByType image/gif "access plus 2678400 seconds"
  ExpiresByType image/jpeg "access plus 2678400 seconds"
  ExpiresByType image/png "access plus 2678400 seconds"
  ExpiresByType text/css "access plus 518400 seconds"
  ExpiresByType text/javascript "access plus 2678400 seconds"
  ExpiresByType application/x-javascript "access plus 2678400 seconds"
</ifmodule>

# Cache Headers
<ifmodule mod_headers.c>
  # Cache specified files for 31 days
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  # Cache HTML files for a couple hours
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  # Cache PDFs for a day
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  # Cache Javascripts for 31 days
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</ifmodule>


Answer 3:

你的.htaccess应该运行得很好; 这取决于四个不同的Apache模块(每个一个<IfModule>指令)。 我想执行下列操作之一:

  • Apache服务器没有安装和运行的是mod_filter,mod_deflate模块,和mod_headers中/或mod_setenvif模块。 如果您可以访问服务器的配置,请检查/etc/apache2/httpd.conf (以及相关的Apache的配置文件); 否则,可以看到哪些模块经由加载phpinfo() ,根据apache2handler部分(参见附图); ( 编辑 ),或者,你可以打开一个终端窗口并发出命令sudo apachectl -M将列出已加载的模块;

  • 如果你得到一个HTTP 500内部服务器错误,您的服务器可能不会被允许使用.htaccess文件;

  • 你要加载发送它自己的头(覆盖Apache'sheaders)PHP文件,因此“混乱”的浏览器。

在任何情况下,你应该仔细检查你的服务器配置错误日志,看看有什么地方出了错。 只是可以肯定,尝试使用建议的最快方法这里在Apache的文档:

AddOutputFilterByType DEFLATE text/html text/plain text/xml

然后尝试装入大型文本文件(最好先清理缓存)。

编辑 )如果需要的模块都存在(在Apache模块目录),但不加载,只是编辑/etc/apache2/httpd.conf和添加的LoadModule指令为他们中的每一个。

如果需要的模块不存在(没有装,也不在Apache模块目录),我担心,唯一的选择就是重新安装的Apache(完整版)。



Answer 4:

首先, 去阿帕奇/斌/ conf目录/ httpd.conf文件 ,并确保mod_deflate.so启用。

然后去.htaccess文件并添加此行:

SetOutputFilter DEFLATE

这应该输出的所有内容担任gzip压缩的,我已经尝试过了,它的工作原理。



Answer 5:

使用相同的.htaccess配置就遇到了这个问题。 我意识到,我的服务器担当JavaScript文件为text/javascript ,而不是application/javascript 。 有一次,我加text/javascriptAddOutputFilterByType声明,Gzip已开始工作。

至于为什么要使用JavaScript正在担任text/javascript :有一个AddType 'text/javascript' js声明我的根.htaccess文件的顶部。 删除它(它已经被错误地加)后,JavaScript的起点作为application/javascript



Answer 6:

在我来说,我已经使用了如下使gzip压缩的Apache Web服务器的代码。

  # Compress HTML File, CSS File, JavaScript File, Text File, XML File and Fonts
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE font/otf
    AddOutputFilterByType DEFLATE font/ttf

我从取出的参考http://www.tutsway.com/enable-gzip-compression-using-htacess.php 。



Answer 7:

在我的情况下追加仅此行的工作

SetOutputFilter DEFLATE



Answer 8:

允许通过的.htaccess压缩

对于大多数人读这篇文章,压缩是通过添加一些代码到一个名为的.htaccess他们的网络主机/服务器上的文件中启用。 这意味着要到文件管理器(或无论你走到哪里添加或上传文件)在您的虚拟主机提供商。

.htaccess文件控制为您的网站很多重要的事情。

下面的代码应该添加到您的.htaccess文件...

<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文件,然后刷新网页。

请检查您是否压缩使用工作Gzip压缩工具 。



Answer 9:

如果你的虚拟主机是到C面板开启的Apacheç图G Zip压缩

进入cPanel和检查软件选项卡。

以前用于优化工作的网站,但现在一个新的选项可用,即“MultiPHP INI编辑器”。

选择要压缩的域名。

向下滚动至底部,直到你找到ZIP压缩输出和启用它。

现在,再次检查对G Zip压缩。

您可以按照视频教程也。 https://www.youtube.com/watch?v=o0UDmcpGlZI



Answer 10:

<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>

<IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>


文章来源: How can I get Apache gzip compression to work?