Сжатие Gzip через .htaccess не работает - PullRequest
14 голосов
/ 01 мая 2011

Я создавал сайт и проверял его скорость через gtmetrix.com . Я использовал следующий .htaccess файл для сжатия .js, .css и многих других файлов.

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

ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

Options Indexes
IndexOptions FancyIndexing

ExpiresActive On
ExpiresDefault "access plus 7 days"
ExpiresByType application/javascript A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/javascript A2592000
ExpiresByType text/html A2592000
ExpiresByType text/xml A2592000
ExpiresByType text/css A2592000
ExpiresByType text/plain A2592000
ExpiresByType image/gif A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType image/bmp A2592000
ExpiresByType application/x-shockwave-flash A2592000

<FilesMatch "\.(html?|txt)$">
  ForceType 'text/html; charset=UTF-8'
</FilesMatch>

<FilesMatch "\.(css)$">
  ForceType 'text/css; charset=UTF-8'
</FilesMatch>

<FilesMatch "\.(js)$">
  ForceType 'text/javascript; charset=UTF-8'
</FilesMatch>

<FilesMatch "\.(css|js)$">
  Header append Vary Accept-Encoding
</FilesMatch>

Но когда я запускаю тест страницы, он показывает следующее -----

Compressing the following resources with gzip could reduce their transfer size by 882B (48% reduction).

Compressing http://wooflux.co.cc/ could save 645B (48% reduction).
Compressing http://wooflux.co.cc/style.css could save 237B (51% reduction).

Но я сделал gzip сжатие для моего .htaccess файла. Я не понимаю, что здесь не так, и, кстати, я очень новичок в этом стиле кодирования. Поэтому, пожалуйста, дайте мне знать, если я делаю какую-либо ошибку или нет.

Ответы [ 3 ]

31 голосов
/ 01 мая 2011

Я не использовал mod_gzip, но вот мой .htaccess, который я использую для gzip .js, .css и других файлов через mod_deflate:

#Gzip
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x- javascript application/javascript
</ifmodule>
#End Gzip

Если вы еще не знаете об этом, Firebug очень полезен для проверки того, загружен ли загруженный контент.Нажмите на вкладку «Сеть» в Firebug, а затем выполните shift-f5, чтобы Firefox перезагрузил все файлы .js и .css, чтобы они отобразились на панели «Сеть».Нажмите «+» рядом с файлом .js или .css и перейдите на вкладку «Заголовки».Если ответ получен в виде gzip, вы увидите «gzip с кодировкой содержимого» в разделе «Заголовки ответа».Я представляю, что эквиваленты IE, Safari и Chrome предлагают одну и ту же возможность.

Существует один момент, касающийся gzipping .js и .css файлов на IE6 , на который стоит обратить внимание.Я думаю, что это применимо только к пользователям IE6 SP1.

7 голосов
/ 01 мая 2011

Вот синтаксис для использования с расширениями файлов.

<IFModule mod_deflate.c>
    <filesmatch "\.(js|css|html|jpg|png|php)$">
        SetOutputFilter DEFLATE
    </filesmatch>
</IFModule>
2 голосов
/ 17 июня 2016

В моем случае mod_gzip или mod_deflate не работали даже после включения и записи в файл htaccess.

Затем я использовал ob_gzhandler в моем php-файле, который помог мне сжать мои php и html-файлы. Это не так хорошо, как mod_gzip или mod_deflate, но служит вам временно, если вы не можете получить удачу от других.

Код, который я использовал в моем файле index.php вверху, перед загрузкой чего-либо,

<? ob_start("ob_gzhandler"); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...