0

我们在“如何防止 Web 浏览器缓存页面?”中解决了禁用客户端缓存的任务,但禁用缓存很少是唯一(或最佳)选项。

在这里,我们将研究一种机制,它允许我们以一种可以从 PHP 脚本中控制的方式利用客户端缓存。

需要阿帕奇!这种方法仅在您将 PHP 作为 Apache Web 服务器模块运行时才有效,因为它需要使用函数 getallheaders(仅适用于 Apache)来获取 Web 浏览器发送的 HTTP 标头。

4

1 回答 1

2

谷歌上的第三个结果:https ://encrypted.google.com/search?sclient=psy&hl=en&site=&source=hp&q=disable+cache+apache&btnG=Google+Search

.htaccess 方法:

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

PHP方法:

<?php
header("Cache-Control: no-cache, no-store, must-revalidate, max-age=0");
header("Pragma: no-cache");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

jQuery/ajax 方法:

$.ajaxSetup ({
    // Disable caching of AJAX responses
    cache: false
});

贫民窟方法:

<a href="/path/page.php?r=random-number-generated-with-javascript-or-php">stuff</a>
于 2013-08-29T12:21:22.287 回答