我正在使用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。
有人有想法吗?
答案 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>