htaccess

Сжатие gzip и кэш браузера в htaccess

При оптимизация скорости работы сайта инструменты типа Google PageSpeed Tools рекомендуют использовать кэш браузера и включить сжатие. Приведенные ниже примеры показывают как их включить.
Данный код нужно добавить в .htaccess в корне сайта.

1

Сжатие gzip

<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    <FilesMatch "\.(ttf|otf|eot|svg)$" >
        SetOutputFilter DEFLATE
    </FilesMatch>
</IfModule>

На хостинге nic.ru нужно включить модуль mod_deflate:
Хостинг, почта, конструктор сайтов → Управление хостингом → Управление модулями

2

Включение кэширования

Google рекомендует кэшировать статические файлы на срок не менее недели года.
В данном примере 1536000 – один год. Подробнее на developers.google.com

<ifModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1536000 seconds"
    ExpiresByType image/x-icon "access plus 1536000 seconds"
    ExpiresByType image/jpeg "access plus 1536000 seconds"
    ExpiresByType image/png "access plus 1536000 seconds"
    ExpiresByType image/gif "access plus 1536000 seconds"
    ExpiresByType application/x-shockwave-flash "access plus 1536000 seconds"
    ExpiresByType text/css "access plus 1536000 seconds"
    ExpiresByType text/javascript "access plus 1536000 seconds"
    ExpiresByType application/javascript "access plus 1536000 seconds"
    ExpiresByType application/x-javascript "access plus 1536000 seconds"
    ExpiresByType text/html "access plus 1536000 seconds"
    ExpiresByType application/xhtml+xml "access plus 1536000 seconds"
</ifModule>
3

Сброс кэша

Как такового способа очистить сразу весь кэш браузера нет, но можно добавить GET параметр
?ver=1.0 к ссылкам на часто изменяемые файлы JS и CSS и после правок его менять.

Чтобы каждый раз не редактировать множество шаблонов, значение версии задавать PHP константой:

define('VERSION', '1.0');
<link rel="stylesheet" href="/css/style.css?ver=<?php echo VERSION; ?>">
<script src="/js/script.js?ver=<?php echo VERSION; ?>"></script>
06 декабря 2016
Если нужно запретить выполнение скриптов php в директории, например в uploads, нужно поместить туда файл .htaccess со...
Задача: есть сайт example.com и множество его поддоменов, нужно на поддоменах разместить копии сайта.