Предварительное сжатие статических файлов на 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 :+'''Описание условий 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 :

  1. Браузер запросил сжатие
  2. Браузер не Safari
  3. Имя файла не заканчивается на .gz
  4. Есть сжатая версия файла
  5. Перенаправляем запрос на сжатую версию

2. Зайдите на сервер по SSH и выполните команду

for file in `find . -type f -regextype awk -regex ".*\.(htm|html|js|txt|csv|css)$"`; do gzip -cf9 $file > $file.gz; done

Эта команда найдет и создаст сжатые копии всех текстовых файлов у вас на сайте. Её нужно выполнять каждый раз после обновления статических файлов.

Личные инструменты