Подтвердить что ты не робот

Выключить кеш для определенного файла с помощью Apache

У меня есть страница на сайте, где используется random() twig, в Firefox и Chrome запрещено работать, потому что он становится кэшированным, как только загружается страница.

Есть ли способ отключить кеширование определенного файла с помощью конфигураций Apache, вызывать его default.html или даже лучше отключить кэширование для script части этого файла, но сохранить кеширование файлов изображений?

Я пробовал .htaccess, но это не работает.

Единственный способ, с помощью которого работает script - отключить кеширование по всему миру через заголовки PHP:

<?php
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
?>

Но поскольку мне нужно отключить кеширование отдельной страницы, отключить ее, потому что все кажется сумасшедшим.

4b9b3361

Ответ 1

Выяснилось, чтобы нацелить определенный файл (в данном случае index.php), добавьте этот код в конец .htaccess

<Files index.php>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</Files>

Альтернативно для целевого выбора файлов, т.е. Я хотел бы кэшировать изображения, но ничего больше (файлы, которые соответствуют html, htm, js, css, php, не будут кэшироваться):

<filesMatch "\.(html|htm|js|css|php)$">
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</filesMatch>

Для проверки чтения .htaccess я ввел несколько строк мусора внизу, узнал, что он не читается, переименовал его из htaccess в .htaccess, и он сработал.