Как я могу заставить сжатие Apache gzip работать?

Я не могу заставить свой сайт использовать сжатие gzip.

Я недавно смотрел этот видео Крис Койер на css-tricks.com - ... В видео он говорит о включении сжатия gzip, чтобы веб-сайты работали быстрее.

согласно его инструкции, я связался с github через html5boilerplate.com, скопировал код сжатия gzip из их .файл htaccess, вставил его в свой собственный и загрузил на свой сайт.

я протестировал его через gzipwtf.com и это, кажется, не работает. Кто-нибудь может мне помочь?

мой .htaccess файл выглядит так:

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

RewriteEngine On
RewriteCond %{HTTP_HOST} !^orbitprint.com$ [NC]
RewriteRule ^(.*)$ http://orbitprint.com/ [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>

10 ответов


попробуйте это :

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

я попробовал и это лучше, чем другие, я думаю... Просто вставьте ваш .htaccess файл, чем проверить время загрузки на Google 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>

ваш .htaccess должен работать нормально; это зависит от четырех различных модулей Apache (по одному на каждый


в первую очередь перейти к apache/bin/conf / httpd.conf и убедитесь, что mod_deflate.so включен.

затем перейдите к .реврайт файл и добавьте эту строку:

SetOutputFilter сдуть

Это должно вывести все содержимое, служащее gzipped, я пробовал его, и он работает.


столкнулся с этой проблемой, используя то же самое .настройка htaccess. Я понял, что мой сервер обслуживает файлы JavaScript как text/javascript вместо application/javascript. Однажды я добавил text/javascript до AddOutputFilterByType объявление, gzip начал работать.

о том, почему javascript служил как text/javascript: есть AddType 'text/javascript' js декларации в верхней части моего корня .файл htaccess. После его удаления (он был добавлен по ошибке) javascript начинает служить как application/javascript.


в моем случае я использовал следующий код для включения сжатия gzip на веб-сервере apache.

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


в моем случае добавьте только эту строку

SetOutputFilter DEFLATE


включить сжатие через .реврайт

для большинства людей, читающих это, сжатия, добавив некоторый код в файл .htaccess на их веб-хосте / сервере. Это означает переход к файловому менеджеру (или куда вы идете, чтобы добавить или загрузить файлы) на вашем веб-хосте.

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


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

Если ваш веб-хост находится через Панель C, включите сжатие G ZIP на панели Apache c

перейдите в CPanel и проверьте вкладку software.

ранее оптимизируйте веб-сайт, используемый для работы, но теперь доступна новая опция i.e "MultiPHP ini Editor".

выберите доменное имя, которое требуется сжать.

прокрутите вниз до конца, пока не найдете сжатие вывода zip и не включите его.

теперь проверьте еще раз для G ZIP Компрессия.

вы также можете следить за видео-учебником. https://www.youtube.com/watch?v=o0UDmcpGlZI