#php #html #.htaccess #web #gzip
#php #HTML #.htaccess #веб #gzip
Вопрос:
Я создавал сайт и проверял его скорость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 очень полезен для проверки, находится ли загруженный контент в архивированном виде. Нажмите на вкладку «Сеть» в Firebug, а затем выполните shift-f5, чтобы заставить Firefox перезагрузить все файлы .js и .css, чтобы они отображались на панели «Сеть». Нажмите » » рядом с файлом .js или .css и перейдите на вкладку «Заголовки». Если ответ архивирован, вы увидите «gzip с кодировкой содержимого» в разделе заголовков ответа. Я представляю, что эквиваленты IE, Safari и Chrome предлагают ту же возможность.
Есть одна ошибка, касающаяся архивирования файлов .js и .css в IE6, на которую следует обратить внимание. Я думаю, что это применимо только к пользователям IE6 SP1.
Комментарии:
1. Кстати, убедитесь, что модули mod_gzip и / или mod_gzip Apache установлены. Также вы можете захотеть проверить журналы ошибок Apache на наличие любых применимых ошибок.
2. я использовал ваш скрипт в своем файле .htaccess, но я получил внутреннюю ошибку сервера.
Ответ №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"); ?>
Комментарии:
1. Вы знаете, есть ли способ заставить это работать в файлах .js?