<?php
if(isset($_SERVER['HTTP_ACCEPT_ENCODING']) && substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
{ob_start('ob_gzhandler');
/*header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
*/
}else
ob_start();
?>Скопировать в буфер
Готовый .htaccess для сжатия и кеширования "налету":
################ Expires Control ################ ExpiresActive On ExpiresDefault A0 <FilesMatch \"\.(gif|jpg|jpeg|png|swf)$\"> # 2 weeks ExpiresDefault A1209600 Header append Cache-Control \"public\" </FilesMatch> <FilesMatch \"\.(xml|txt|html)$\"> # 2 hours ExpiresDefault A7200 Header append Cache-Control \"proxy-revalidate\" </FilesMatch> <FilesMatch \"\.(js|css)$\"> # 3 days ExpiresDefault A259200 Header append Cache-Control \"proxy-revalidate\" </FilesMatch> ################## GZip Files ################### <FilesMatch \"\.js$\"> AddHandler application/x-httpd-php .js php_value default_mimetype \"text/javascript\" </FilesMatch> <FilesMatch \"\.css$\"> AddHandler application/x-httpd-php .css php_value default_mimetype \"text/css\" </FilesMatch> <FilesMatch \"\.(htm|html|shtml)$\"> AddHandler application/x-httpd-php .html php_value default_mimetype \"text/html\" </FilesMatch> php_value auto_prepend_file /absolute/path/to/gzip.phpgzip-css.php
<?php
ob_start ("ob_gzhandler");
header ("content-type: text/css; charset: UTF-8");
header ("cache-control: must-revalidate");
$offset = 60 * 60;
$expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
header ($expire);
?>Скопировать в буфер
Для сжатия CSS и JS файлов добавьте в .htaccess следующий код:
AddHandler application/x-httpd-php .css php_value auto_prepend_file gzip-css.php php_flag zlib.output_compression On
gzip-css.php, который удаляет из css файла комментарии, пробелы:
<?php
header('Content-type: text/css');
ob_start("compress");
function compress($buffer) {
/* remove comments */
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
/* remove tabs, spaces, newlines, etc. */
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
return $buffer;
}
/* все ваши css файлы */
include('master.css');
include('grid.css');
include('print.css');
include('top.css');
ob_end_flush();
?>Скопировать в буфер
© Copyright 2008-2012 by KDG