Предварительное сжатие статических файлов на Apache
Материал из 1GbWiki.
(Различия между версиями)
| Версия 12:55, 27 сентября 2019 (править) Chapay (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия (12:58, 27 сентября 2019) (править) (отменить) Chapay (Обсуждение | вклад) |
||
| Строка 33: | Строка 33: | ||
| RewriteRule ^(.+) $1.gz [QSA,L] | RewriteRule ^(.+) $1.gz [QSA,L] | ||
| - | + | '''Описание условий Rewrite :''' | |
| #Браузер запросил сжатие | #Браузер запросил сжатие | ||
| #Браузер не Safari | #Браузер не Safari | ||
| Строка 41: | Строка 41: | ||
| 2. Зайдите на сервер по [[SSH]] и выполните команду | 2. Зайдите на сервер по [[SSH]] и выполните команду | ||
| - | for file in `find . -type f -regextype awk -regex ".*\.(htm|html|js|txt|csv)$"`; do gzip -cf9 $file > $file.gz; done | + | for file in `find . -type f -regextype awk -regex ".*\.(htm|html|js|txt|csv|css)$"`; do gzip -cf9 $file > $file.gz; done |
| Эта команда найдет и создаст сжатые копии всех текстовых файлов у вас на сайте. Её нужно выполнять каждый раз после обновления статических файлов. | Эта команда найдет и создаст сжатые копии всех текстовых файлов у вас на сайте. Её нужно выполнять каждый раз после обновления статических файлов. | ||
| [[Категория:WEB-сервер Apache]] | [[Категория:WEB-сервер Apache]] | ||
Текущая версия
За основу взята статья http://www.ardamis.com/2010/07/11/compress-files-without-mod_gzip-or-mod_deflate/
1. Допишите в ваш .htaccess в корневой папке сайта (или создайте новый файл, если своего .htaccess у вас нет):
<files *.css.gz>
AddType "text/css" .gz
AddEncoding gzip .gz
</files>
<files *.csv.gz>
AddType "text/csv" .gz
AddEncoding gzip .gz
</files>
<files *.html.gz>
AddType "text/html" .gz
AddEncoding gzip .gz
</files>
<files *.htm.gz>
AddType "text/html" .gz
AddEncoding gzip .gz
</files>
<files *.js.gz>
AddType "text/javascript" .gz
AddEncoding gzip .gz
</files>
<files *.txt.gz>
AddType "text/plain" .gz
AddEncoding gzip .gz
</files>
RewriteEngine on
ReWriteCond %{HTTP:accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.+) $1.gz [QSA,L]
Описание условий Rewrite :
- Браузер запросил сжатие
- Браузер не Safari
- Имя файла не заканчивается на .gz
- Есть сжатая версия файла
- Перенаправляем запрос на сжатую версию
2. Зайдите на сервер по SSH и выполните команду
for file in `find . -type f -regextype awk -regex ".*\.(htm|html|js|txt|csv|css)$"`; do gzip -cf9 $file > $file.gz; done
Эта команда найдет и создаст сжатые копии всех текстовых файлов у вас на сайте. Её нужно выполнять каждый раз после обновления статических файлов.
