Увеличиваем скорость загрузки сайта на DLE

Увеличиваем скорость загрузки сайта на DLE

На сегодняшний день все современные браузеры давно умеют кешировать статические данные, а это картинки, скрипты, css, шрифты и другие файл из которых состоит сайт. Нам лишь нужно сообщить браузеру на какой срок нам нужно кешировать все необходимые данные с первого обращения непосредственно к самим файлам. Когда пользователь заходит на сайт, то браузер загружает скрипты, картинки, стили и другие файлы, но при переходе происходит снова тот же самый процесс, потому что думает, что файлы обновились. Логичнее будет сказать браузеру сохранить у себя в кеше нужные нам файлы дизайна и повторно не делать запрос к серверу. Вы можете выставить абсолютно любое время, например, один год или один месяц, можно указать и неделю, день, три дня. Все будет завить непосредственно от вашего сайта.

Как раз для указания "времени жизни" закешированных данных, правильной обработки HTTP-заголовков браузерами и предназначен этот код:

Открываем:
.htaccess и в самое начал вставить:
<IfModule mod_expires.c>
	ExpiresActive on

	ExpiresDefault "access plus 1 month"

	# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
	ExpiresByType text/cache-manifest "access plus 0 seconds"

	# html
	ExpiresByType text/html "access plus 0 seconds"

	# XML
	ExpiresByType text/xml "access plus 0 seconds"
	ExpiresByType application/xml "access plus 0 seconds"

	# RSS
	ExpiresByType application/rss+xml "access plus 1 hour"

	# Favicon
	ExpiresByType image/x-icon "access plus 1 week"

	# Картинки
	ExpiresByType image/gif "access plus 1 month"
	ExpiresByType image/png "access plus 1 month"
	ExpiresByType image/jpeg "access plus 1 month"
	ExpiresByType image/jpg "access plus 1 month"

	# HTC файлы  (например css3pie)
	ExpiresByType text/x-component "access plus 1 month"

	# Нестандартные шрифты сайта
	ExpiresByType application/x-font-ttf "access plus 1 month"
	ExpiresByType font/opentype "access plus 1 month"
	ExpiresByType application/x-font-woff "access plus 1 month"
	ExpiresByType image/svg+xml "access plus 1 month"
	ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

	# CSS и javascript
	ExpiresByType text/css "access plus 1 year"
	ExpiresByType application/javascript "access plus 1 year"

</IfModule>

# Cache-Control браузера 
<ifModule mod_headers.c>
	# 30 дней
	<filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
	Header set Cache-Control "max-age=2592000, public"
	</filesMatch>
	# 30 дней
	<filesMatch "\.(css|js)$">
	Header set Cache-Control "max-age=2592000, public"
	</filesMatch>
	# 2 дня
	<filesMatch "\.(xml|txt)$">
	Header set Cache-Control "max-age=172800, public, must-revalidate"
	</filesMatch>
	# 1 день
	<filesMatch "\.(html|htm|php)$">
	Header set Cache-Control "max-age=172800, private, must-revalidate"
	</filesMatch>
</ifModule>

<IfModule mod_setenvif.c>
	#Эта конструкция для говнобраузера
	#Запрет отдачи HTTP-заголовков Vary
	BrowserMatch "MSIE" force-no-vary
	BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>


Представленный код - результат сбора данных с разных источников и оптимизации его под DLE. Для подключения его нужно вставить в самое начало файла .htaccess и обновить кеш в админке. Как видно код разбит на блоки-условия. Если какой-то из используемых в коде модулей не включен - блок будет пропущен. Так же в коде прокомментированы сроки, на которые кешируются статические данные и представлен фикс для IE.
Также рекомендуем

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.