使用Apache关闭特定文件的缓存

Lev*_*vel 16 apache .htaccess caching

我在一个使用random()twig 的网站上有一个页面,在Firefox和Chrome中它被禁止工作,因为它会在页面加载后立即缓存.

有没有办法通过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');
?>
Run Code Online (Sandbox Code Playgroud)

但是因为我只需要关闭单个页面的缓存,所以关闭所有内容似乎都很疯狂.

Lev*_*vel 32

想出来,为了定位一个特定的文件(在这种情况下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>
Run Code Online (Sandbox Code Playgroud)

或者,可以定位特定的文件选择,即.我想缓存图像,但没有别的(匹配的文件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>
Run Code Online (Sandbox Code Playgroud)

要检查.htaccess正在读我的底部进入垃圾的几行,发现它没有被读取,从它改名htaccess.htaccess和它的工作.