Wordpress /防止服务器缓存CSV文件

时间:2019-07-18 12:58:51

标签: wordpress caching server

我正在使用PHP创建CSV文件并将其保存到服务器。

启用了服务器缓存,但这也使CSV文件也被缓存。

我正在寻找一种防止这种情况的方法。没有插件...

我尝试过的操作:向htaccess添加代码(这也阻止了浏览器缓存文件,请不要专注于与htaccess和浏览器缓存有关的答案,谢谢!)。 而且我还尝试添加一些header()代码..但我不确定在哪里。

我在创建文件时添加了它:

    header('Content-Type: text/csv');
    header('Content-Disposition: attachment filename="sample.csv"');
    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');

但是当我打开文件时它不起作用-它被缓存了。但是我想这是添加此代码的错误地方。但是还有什么呢? 我还尝试向“ init”添加一个操作,询问被调用的文件是否是我不想缓存的文件,但是,当然,从服务器打开文件时不会调用functions.php。

有人有想法吗?

1 个答案:

答案 0 :(得分:1)

将此代码放在.htaccess文件中,可能会对您有所帮助。在进行此操作之前,请确保已完成网站备份。

<FilesMatch "\.(pdf|csv|doc)$">
    <IfModule mod_expires.c>
        ExpiresActive Off
    </IfModule>
    <IfModule mod_headers.c>
        FileETag None
        Header unset ETag
        Header unset Pragma
        Header unset Cache-Control
        Header unset Last-Modified
        Header set Pragma "no-cache"
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Expires "Mon, 10 Apr 1972 00:00:00 GMT"
    </IfModule>
</FilesMatch>