Предварительное сжатие статических файлов на Apache

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 06:08, 21 сентября 2010 (править)
Rekby (Обсуждение | вклад)
(Новая: За основу взята статья http://www.ardamis.com/2010/07/11/compress-files-without-mod_gzip-or-mod_deflate/ 1. Допишите в ваш .htaccess в корневой ...)
← К предыдущему изменению
Текущая версия (12:58, 27 сентября 2019) (править) (отменить)
Chapay (Обсуждение | вклад)

 
(1 промежуточная версия не показана)
Строка 27: Строка 27:
</files> </files>
RewriteEngine on RewriteEngine on
- ReWriteCond %{HTTP:accept-encoding} gzip # Браузер запросил сжатие+ ReWriteCond %{HTTP:accept-encoding} gzip
- RewriteCond %{HTTP_USER_AGENT} !Safari # Браузер не Safari+ RewriteCond %{HTTP_USER_AGENT} !Safari
- ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$ # Имя файла не заканчивается на .gz+ ReWriteCond %{REQUEST_FILENAME} !^.+\.gz$
- RewriteCond %{REQUEST_FILENAME}.gz -f # Есть сжатая версия файла+ RewriteCond %{REQUEST_FILENAME}.gz -f
- RewriteRule ^(.+) $1.gz [QSA,L] # Перенаправляем запрос на сжатую версию+ RewriteRule ^(.+) $1.gz [QSA,L]
 + 
 +'''Описание условий Rewrite :'''
 +#Браузер запросил сжатие
 +#Браузер не Safari
 +#Имя файла не заканчивается на .gz
 +#Есть сжатая версия файла
 +#Перенаправляем запрос на сжатую версию
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

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

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