Сжатие Gzip через .htaccess не работает

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

Ответы

Ответ 1

Я не использовал 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 очень полезно проверить, загружен ли загруженный контент. Нажмите вкладку "Net" в Firebug, а затем сделайте shift-f5, чтобы заставить Firefox перезагрузить все .js и .css файлы, чтобы они отображались на панели Net. Нажмите "+" рядом с файлами .js или .css и перейдите на вкладку "Заголовки". Если ответ будет gzip, вы увидите "Content-Encoding gzip" в разделе "Заголовки ответов". Я вижу, что IE, Safari и эквиваленты Chrome обладают той же способностью.

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

Ответ 2

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

<IFModule mod_deflate.c>
    <filesmatch "\.(js|css|html|jpg|png|php)$">
        SetOutputFilter DEFLATE
    </filesmatch>
</IFModule>

Ответ 3

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

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

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

<? ob_start("ob_gzhandler"); ?>