【问题标题】:Wordpress / Prevent Server from Caching CSV FilesWordpress / 防止服务器缓存 CSV 文件
【发布时间】:2019-07-18 21:16:41
【问题描述】:

我正在使用 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。

有人有想法吗?

【问题讨论】:

  • 每次改文件名都要改吗? (例如sample-20190718.csv
  • 我做不到,因为平台每天都在获取文件,他们不可能每天都获取不同名称的文件。

标签: wordpress caching server


【解决方案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>

【讨论】:

  • 正如我所说,这仅适用于浏览器缓存。但我正在寻找一种解决方案来禁用特定 url 或文件的服务器缓存!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 1970-01-01
  • 2011-01-10
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多