Браузерное кэширование и max-age

Web-Silver
На сайте с 02.05.2007
Offline
247
1841

Добрый день!

Имеется блог на WordPress и обычный виртуальный хостинг. При попытке настроить "Используйте кеш браузера" из рекомендаций PageSpeed Tools Insights (Google) получаю такую картину:

Cache-Control: public, max-age=0, no-cache, no-transform, max-age=2592000

При этом в сервисах проверки по-прежнему (не указан срок действия) и (No max-age or expires).

В файле .htaccess прописано следующее:


ExpiresActive On
ExpiresDefault "access 7 days"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType text/html "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType application/xhtml+xml "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"

Версия Apache 2.2 - уже весь Интернет перерыл...

Вопрос: почему max-age=2592000 не ПЕРЕзаписывается, а ДОписывается? Ну и как исправить...

Заранее всем спасибо!

[umka]
На сайте с 25.05.2008
Offline
456
#1

А без этих директив последний max-age не добавляется?

Больше похоже, что у вас это где-то принудительно добавляется таким вот образом:

Header append Cache-Control max-age=2592000

Лог в помощь!
Web-Silver
На сайте с 02.05.2007
Offline
247
#2

[umka], так больше интересует где добавляется max-age=0, т.к. max-age=2592000 - это как раз из .htaccess (30 суток или 1 месяц).

P.S. Без этих директив: Cache-Control: public, max-age=0, no-cache, no-transform

Web-Silver
На сайте с 02.05.2007
Offline
247
#3

Дополнение: проверил на этом же хостинге, но на одностраничнике без движка. Ответ сервера стал Cache-Control: max-age=2592000 (без всяких дополнительных max-age=0), но вот PageSpeed Tools Insights и сторонние сервисы по-прежнему показывают: (не указан срок действия) и (No max-age or expires).

RAS
На сайте с 27.11.2005
Offline
126
RAS
#4

Искать надо в коде WP и плагинах, где идет вывод:

Cache-Control: public, max-age=0, no-cache, no-transform
Администрируем сервера, впс, вдс. Ускоряем загрузку сайтов - DLE, Word Press, Joomla, Modx... Настраиваем безопасность. Ручная чистка rootkit/malware/вирусов. (/ru/forum/867860) Разработка - shell/bash/sh/python/perl.
Web-Silver
На сайте с 02.05.2007
Offline
247
#5

RAS, спасибо за помощь! Помогло добавление expires 30d; в location для статических файлов:

location ~* \.(js|css|png|jpg|svg|jpeg|gif|ico|woff|pdf|html|swf)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
D
На сайте с 28.06.2008
Offline
1101
#6

С этого и надо было начинать что у вас там Нгихс стоит

Web-Silver
На сайте с 02.05.2007
Offline
247
#7

Dram, а я сам не знал про это на shared-хостинге! И плюс к тому, разве в такой связке не должен обрабатываться файл .htaccess? Сейчас хостер сделал это для ОДНОГО домена и предлагает прислать список других, на которых нужно выполнить такую же настройку...

lealhost
На сайте с 07.06.2014
Offline
136
#8
Web-Silver:
Dram, а я сам не знал про это на shared-хостинге! И плюс к тому, разве в такой связке не должен обрабатываться файл .htaccess? Сейчас хостер сделал это для ОДНОГО домена и предлагает прислать список других, на которых нужно выполнить такую же настройку...

Не должен. .htaccess - файл для Apache сервера. Статические файлы (css, js, изображения) nginx отдает напрямую, игнорируя Apache.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий