【问题标题】:What to write in HTML document to enable GZip?在 HTML 文档中写什么来启用 GZip?
【发布时间】:2014-08-26 06:33:30
【问题描述】:

我在我的网站中添加了以下代码以启用 GZIP 压缩,但是当我测试我的 webpage 时,它仍然在在线 GTCompression 测试网站上给我以下错误消息。请告诉我是否还需要在我的 HTML 文件中添加任何内容?

Web Page        The http server hasn't sent out a "Content-Encoding" header.
Your Browser    Your browser is accepting compressed content.

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

【问题讨论】:

    标签: php html .htaccess gzip


    【解决方案1】:

    您需要将以下行添加到您的 .htaccess 文件中:

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

    【讨论】:

    • 非常感谢,现在它说 GZIP 已启用 :)
    【解决方案2】:

    试试下面的代码

    <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>
    
              # HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
              <IfModule filter_module>
                FilterDeclare   COMPRESS
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
                FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
                FilterChain     COMPRESS
                FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
              </IfModule>
    
              <IfModule !mod_filter.c>
                # Legacy versions of Apache
                AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
                AddOutputFilterByType DEFLATE application/javascript
                AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
                AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml 
                AddOutputFilterByType DEFLATE application/atom+xml
                AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject 
                AddOutputFilterByType DEFLATE application/x-font-ttf font/opentype
              </IfModule>
            </IfModule>
    

    【讨论】:

    • 此代码正在阻止我的网站打开。添加上述代码后,我收到以下错误消息。 ` 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。`
    • 那么你的 Apache 服务器没有安装和运行 mod_filter、mod_deflate、mod_headers 和 mod_setenvif 模块
    猜你喜欢
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    相关资源
    最近更新 更多