Оптимизиране на CSS файловете с htaccess/mod_rewrite с ETag-ове за YSlow

Преди малко четах в блога на Богомил темата за оптимизация за YSlow. Общо взето повечето от тези неща ги използвам и много се радвам, че Бого ги е синтезирал и събрал в една тем, която може да е достъпна за всички. Колкото повече максимално оптимизирани сайтове има, толкова по-удобно става за всички ни сърфирането в Интернет.

Това, което ме подтиква да напиша този пост е една добра идея за по-лесна оптимизация на CSS файловете. Става дума за автоматично подаване на ETag и Expire-date на същите.

Ето и целият план на действие в няколко стъпки:

1.Създваме файл compress.php със следното съдържание:
Header(‘Content-Type: text/css’);
$etag = ‘ETag: ‘.md5_file($_GET[‘file’]);
if(isset($_SERVER[‘HTTP_IF_NONE_MATCH’]) && eregi($_SERVER[‘HTTP_IF_NONE_MATCH’], $etag)){
Header(“HTTP/1.x 304 Not Modified”);
Header($etag);
exit;
}
Header($etag);
include($_GET[‘file’]);
?>

2.След което в главната директория в .htaccess файла добавяме следния ред:
RewriteRule (.*)\.css$ compress.php?file=%{SCRIPT_FILENAME} [L]
Необходимо е преди този ред да има и следните редове (ако ги имате, не ги добавяйте наново – трябва да ги има само веднъж):

RewriteEngine on
RewriteBase /

Това е!
На кратко горните редове следят за заявки към CSS файлове и ги препращат към един файл, които ги компресира и им добавя адекватен ETag, който expire-ва в момента в който файла се примени и съответно md5 сумата му се промени.

Тази схема е активно работеща на notrial.info

Leave a Reply

CommentLuv badge