防止缓存动态(php)内容


Prevent caching of dynamic (php) content

我尝试设置适当的缓存,但是我在获取动态部分时遇到麻烦。

你可以在这里看到有问题的网站:nathanhornby.com这里的回购:https://github.com/nathanhornby/nathanhornby.com

你会看到在底部有3个提要。问题是,如果你现在加载页面,它似乎是缓存的,因此每次加载它,你会看到完全相同的内容,需要用户强制刷新才能看到新的内容,这自然是不切实际的。

**注意:**我说的是页面缓存,而不是提要缓存。提要会缓存,这是有意为之,但如果提要发生变化,只有在用户刷新时才会反映出来。"时间以前"是一样的。如果你第一次加载它时它说'9分钟前',下次加载它时它会说同样的话。但是刷新页面会更新这个时间。

你可以在这里看到我的。htaccess设置:https://github.com/nathanhornby/nathanhornby.com/blob/master/.htaccess

我希望这一节能满足我的需要,但它似乎不能:

# Disable Caching for PHP <FilesMatch "'.(pl|php|cgi|spl|scgi|fcgi)$"> Header unset Cache-Control </FilesMatch>

确保在加载时提供新鲜内容而不需要刷新的最佳方法是什么?

你说你想要新鲜的内容没有页面刷新。为此,您将需要其他的东西,如JQuery和AJAX,禁用缓存不会使页面在没有刷新的情况下自行更新。

这是你想要的吗?

 <FilesMatch "'.(pl|php|cgi|spl|scgi|fcgi)$">
    FileETag None
    <ifModule mod_headers.c>
        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"
    </ifModule>
 </FilesMatch>

来源:http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html