Сжатие 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"); ?>