Перейти к содержимому


Фото
* * * * * 1 голосов

использование кэш браузера в .Htaccess

кэш .htaccess

  • Чтобы отвечать, сперва войдите на форум
14 ответов в теме

#1 Rash

Rash
  • Пользователь
  • 450 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Russian Federation

Опубликовано 11.12.2012 - 10:58

Приветствую форумчане!
Подскажите как грамотно закэшировать изображения, скрипты и css в .Htaccess c указанием времени жизни файлов. Решения которые находил в поиске ни один не подошел. PageSpeed все равно ругался на отсутствия использования кэша. Спасибо!



#2 iluwka

iluwka
  • Пользователь
  • 220 сообщений

Опубликовано 12.12.2012 - 03:48

какие решения использовались?



#3 Rash

Rash
  • Пользователь
  • 450 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Russian Federation

Опубликовано 12.12.2012 - 04:07

хостинг "www.host-food.ru"

RewriteEngine On
RewriteCond %{REQUEST_URI} !index\.php$
RewriteCond %{REQUEST_URI} !\.jpg$
RewriteCond %{REQUEST_URI} !\.gif$
RewriteCond %{REQUEST_URI} !\.png$
RewriteCond %{REQUEST_URI} !\.js$
RewriteCond %{REQUEST_URI} !\.txt$
RewriteCond %{REQUEST_URI} !\.xml$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.htm$
RewriteCond %{REQUEST_URI} !\.mid$
RewriteCond %{REQUEST_URI} !\.avi$
RewriteCond %{REQUEST_URI} !\.css$

# кеширование в браузере на стороне пользователя
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType text/javascript "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType text/html "access plus 7 day"
ExpiresByType text/x-javascript "access 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

# использование кэша браузера
FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>



#4 Rash

Rash
  • Пользователь
  • 450 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Russian Federation

Опубликовано 15.12.2012 - 08:15

iluwka

и тишина...



#5 Milkikilki

Milkikilki
  • Пользователь
  • 176 сообщений

Опубликовано 21.07.2014 - 18:52

Подключаюсь к вопросу, очень актуально



#6 yr4ik

yr4ik
  • Фрилансер
  • 925 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 21.07.2014 - 22:21




<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access 7 days"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType text/javascript "access plus 1 year"
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 7 day"
    ExpiresByType text/x-javascript "access 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

# Cache-Control
<ifModule mod_headers.c>
    # 30 дней
    <filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    
    # 30 дней
    <filesMatch "\.(css|js)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    
    # 2 дня
    <filesMatch "\.(xml|txt)$">
        Header set Cache-Control "max-age=172800, public, must-revalidate"
    </filesMatch>

    # 1 день
    <filesMatch "\.(html|htm|php)$">
        Header set Cache-Control "max-age=172800, private, must-revalidate"
    </filesMatch>
    
</ifModule>
 


#7 Scodch

Scodch
  • Пользователь
  • 48 сообщений
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 23.07.2014 - 09:23


<IfModule mod_expires.c>
...
</ifModule>

 

Спасибо! Прописал, работает. А можете подсказать как включить сжатие? Пробовал так, но PageSpeed всё равно пишет "Включите сжатие".



#8 yr4ik

yr4ik
  • Фрилансер
  • 925 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 23.07.2014 - 13:44

А что вам даст gzip? Тут на много не ускоришь загрузку страницы. Время отдачи ее уменьшится но обработка сервером увеличится...

 

Данный скрипт включает сжатие для жс и ксс.

Попробуйте добавить

после 
mod_gzip_item_include file \.css$
Это
mod_gzip_item_include mime ^text/.*
 


#9 Scodch

Scodch
  • Пользователь
  • 48 сообщений
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 23.07.2014 - 15:56

А что вам даст gzip? Тут на много не ускоришь загрузку страницы. Время отдачи ее уменьшится но обработка сервером увеличится...

 

PageSpeed от Google пишет "Исправьте обязательно: Включите сжатие чтобы уменьшить объем передаваемых данных на 154,3 КБ (74 %)".

 

Попробуйте добавить

после 
mod_gzip_item_include file \.css$
Это
mod_gzip_item_include mime ^text/.*

 

Спасибо, добавил, но PageSpeed всё равно пишет "Включите сжатие..."



#10 yr4ik

yr4ik
  • Фрилансер
  • 925 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 23.07.2014 - 17:03

Что за сервер? страницу phpinfo можете показать? 



#11 Scodch

Scodch
  • Пользователь
  • 48 сообщений
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 23.07.2014 - 21:43

Что за сервер? страницу phpinfo можете показать? 

 

Apache



#12 yr4ik

yr4ik
  • Фрилансер
  • 925 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 23.07.2014 - 21:59

Попробуйте так: 

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>
 


#13 Scodch

Scodch
  • Пользователь
  • 48 сообщений
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 23.07.2014 - 22:11

Попробуйте так: 

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

Попробовал, не работает.

Написал в тех. поддержку хостинга. Они написали, что Gzip включается с их стороны, включили. Всё работает!

yr4ik, спасибо за помощь.



#14 KostyanBr

KostyanBr
  • Пользователь
  • 75 сообщений
  • Заказчик, Пользователь

Опубликовано 27.01.2016 - 18:01




<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access 7 days"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType text/javascript "access plus 1 year"
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 7 day"
    ExpiresByType text/x-javascript "access 1 year"
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresByType application/x-shockwave-flash "access 1 year"
</IfModule>

# Cache-Control
<ifModule mod_headers.c>
    # 30 дней
    <filesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    
    # 30 дней
    <filesMatch "\.(css|js)$">
        Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    
    # 2 дня
    <filesMatch "\.(xml|txt)$">
        Header set Cache-Control "max-age=172800, public, must-revalidate"
    </filesMatch>

    # 1 день
    <filesMatch "\.(html|htm|php)$">
        Header set Cache-Control "max-age=172800, private, must-revalidate"
    </filesMatch>
    
</ifModule>
 

Прописал, но что то не работает. PageSpeed Insights по прежнему пишет: "Используйте кеш браузера "

Может есть другие решения?


Изменено: KostyanBr, 27.01.2016 - 18:01


#15 KostyanBr

KostyanBr
  • Пользователь
  • 75 сообщений
  • Заказчик, Пользователь

Опубликовано 28.01.2016 - 11:48

Разобрался. Оказывается работает только на VPS серверах. 







Также с меткой «кэш, .htaccess»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых