2015-07-09 1 views
11

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

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

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

Единственный способ в настоящее время, что позволяет сценарию работы, чтобы отключить кэширование глобально через 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'); 
?> 

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

+0

'Я пробовал .htaccess, но это не работает'. Это именно то место, где можно это сделать. Что значит «не работает»? Пожалуйста, отредактируйте вопрос и опубликуйте, что вы пытались. – arco444

ответ

22

Фигурные его, предназначаться для конкретного файла (в данном случае 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 читался я вошел в несколько строк мусора на дне, выяснил, что это WASN Не читал, переименовал его с htaccess в .htaccess, и это сработало.

Смежные вопросы