Pull to refresh

Простая настройка .htaccess для production

Reading time2 min
Views19K
Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.



1. Кодировка


Всегда указываем кодировку. По умолчанию лучше выбирать utf-8.
AddDefaultCharset UTF-8


2. Редирект на один домен


Для SEO оптимизации, желательно, чтобы сайт был размещен только на одном домене. Если у вас несколько доменов ссылаются на один сайт, делаем редиректы на основной домен. Желательно, чтобы он начинался с www.

Сделаем это используя код 301

<IfModule mod_rewrite.c>
    Options +Followsymlinks
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^example\.com [OR]
    RewriteCond %{HTTP_HOST} ^example2\.com  [OR]
    RewriteCond %{HTTP_HOST} ^www\.example2\.com
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]    
</IfModule>


3. Кеширование статических ресурсов


Большое время загрузки страницы отбирает загрузка статических ресурсов. Большинство из них никогда не меняются. Но броузер при каждом запросе проверяет не изменился ли ресурс на сервере. В ответе броузер получает код 304 — ресурс не изменился, и берет ресурс с кеша. То есть, даже если ресурс находится в кеше, броузер делает запрос. В общем это выливается в дополнительную нагрузку на сервер и в замедлении парсинга страницы.

Избавимся от этого. Для этого поставим время проверки обновления ресурса на несколько лет вперед, и отключим проверку ETag

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "public"
Header set Expires "Fri, 21 Dec 2012 20:00:00 GMT" #Until the end of the world
FileETag None
</FilesMatch>


4. Сжатие текстовых файлов


Текствые файлы можно передавать броузеру в сжатом виде. Укажем необходимые директивы для этого.
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript


Выводы


Эти настройки подойдут большинству сайтов, которые работают с Apache, оптимизировав работу сервера и скорость загрузки страниц.
Tags:
Hubs:
+46
Comments49

Articles