防止缓存动态(php)内容

时间:2014-07-15 16:54:06

标签: php .htaccess caching

我试图设置适当的缓存,但是我无法获得动态部分。

您可以在此处查看相关网站:nathanhornby.com 这里的回购:https://github.com/nathanhornby/nathanhornby.com

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

**注意:**我正在谈论页面缓存,而不是Feed缓存。 Feed是缓存的,这是有意的,但如果Feed更改,则仅在用户刷新时才会反映。很久以前'是一样的。如果它在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>

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

1 个答案:

答案 0 :(得分:1)

您说没有页面刷新就想要新内容。为此你需要其他东西,比如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