Как отключить кэширование?

iguania
На сайте с 10.12.2010
Offline
72
11432

Добрый вечер!

Насколько я знаю, кэширование можно настраивать локальное и глобальное. Если нет, то поправьте меня. Локальное каждый настраивает в своем браузере (выгодно тем, у кого инет-канал слабый, либо трафик дорогой), а глобальное настраивается на сервере, чтобы экономить ресурсы сервера и на запрашивать каждый раз новую страницу. Так вот вопрос в том, как настроить это самое кэширование? И подскажите как его отключить вообще, чтобы каждый раз у пользователя появлялась новая страница, а не бралась из кэша?

Всем спасибо за подробное разъяснение ситуации)

Все всегда заканчивается хорошо. Если все закончилось плохо, значит, это еще не конец…
Trafikgon
На сайте с 24.10.2008
Offline
174
#1

Сайта dle или сервера?

. (#)
[umka]
На сайте с 25.05.2008
Offline
456
#2

Чтобы отключить кэширование страниц на сервере, нужно крутить сервер. Скорее всего, это некий плагин к CMS.

Чтобы заставить браузер пользователя не кэшировать страницы, то достаточно отдавать корректный http-заголовок "Last-Modified" (или не отдавать вовсе), и отдавать http-заголовок "Cache-Control: no-store, no-cache, must-revalidate".

Про управление кэшированием с помощью http-заголовков можно почитать здесь [14.9].

Если браузер у пользователя совсем тупой или перед пользователем стоит какая-то злобная прокся, то застравить его каждый загружать заново страницы можно только изменяя URL (добавляя к ним уникальную последовательность символов)

http://site.ru/some_page.php?param1=value1&param2=value2&anticache=76541923746

Лог в помощь!
iguania
На сайте с 10.12.2010
Offline
72
#3

[umka], спасибо за ваш ответ.

Я не использую cms, сайт на простом самописе php+mysql. Но хочу, чтобы не срабатывало у пользователей кэширование. Нашел в сети такой код, для отключения кэширования

<?php

header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
?>

подскажите, где его нужно вставить. У меня есть шаблон, я так понял, что этот кусочек кода нужно вставить до <!DOCTYPE HTML..... т.е. до загрузки основного содержимого.

Также нашел еще один вариант, когда кэширование отключают на сервере Апач, путем правки его конфига.

CacheDisable url...

Объясните, пожалуйста, подробнее об этой строке. В каком именно конфиге ее нужно прописать и есть ли доступ к этому файлу на большинстве хостингов...

[umka]
На сайте с 25.05.2008
Offline
456
#4
iguania:
подскажите, где его нужно вставить

В начало каждого php-файла.

Или же, если у вас есть файл типа header.php, который вызывается в начале каждого файла, то в него (опять же, в начало).

iguania:
CacheDisable url...

Объясните, пожалуйста, подробнее об этой строке. В каком именно конфиге ее нужно прописать и есть ли доступ к этому файлу на большинстве хостингов...

Это директива модуля mod_cache, который на сайте Apache значится как экспериментальный. Во-первых, вряд ли на каком-либо хостинге будут ставить экспериментальные модули, во-вторых, эта директива только для контекстов server config и virtual host, к свободному редактированию которых на обычных хостингах доступа нет.

iguania
На сайте с 10.12.2010
Offline
72
#5

[umka], спасибо вам, все предельно просто объяснили, буду юзать первый вариант, как самый удобный.

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