Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 禁用缓存链接问题_Apache_Webserver_Centos5 - Fatal编程技术网

Apache 禁用缓存链接问题

Apache 禁用缓存链接问题,apache,webserver,centos5,Apache,Webserver,Centos5,我有一个下载文件的网站(.pdf,.rar,.jpg,…)。 我的服务器有一个大问题,我认为它与apache有关: 例如,我链接到12.pdf下载它: <a href="12.pdf">book</a> 它工作正常,但存在以下问题: 我用另一个同名文件更改了12.pdf。下载new 12.pdf时,将下载以前的文件。 甚至我从服务器中删除12.pdf并在我的页面中按Ctrl+F5,当单击上面的链接时,12.pdf下载开始并完全下载文件!!但服务器上不存在名称为12.

我有一个下载文件的网站(.pdf,.rar,.jpg,…)。 我的服务器有一个大问题,我认为它与apache有关:

例如,我链接到12.pdf下载它:

<a href="12.pdf">book</a>

它工作正常,但存在以下问题: 我用另一个同名文件更改了12.pdf。下载new 12.pdf时,将下载以前的文件。 甚至我从服务器中删除12.pdf并在我的页面中按Ctrl+F5,当单击上面的链接时,12.pdf下载开始并完全下载文件!!但服务器上不存在名称为12.pdf的文件。 问题是什么?apache缓存我的链接吗?如何解决这个问题?
我的服务器操作系统是CentOS。

一些解决方案,没有特定顺序,可能会有所帮助

  • 创建哈希:

    更好的方法是通过引入 修改文件时将更改的哈希;然后在阿帕奇 配置您可以剥离该值以获得正确的文件路径(或 姓名)。请看这里:

    通过

  • 服务器头。缓存也可以基于响应头在服务器端进行控制

    例如,要强制将文件缓存不超过1天, 您将发送:

    Cache-Control: max-age=86400, must-revalidate 
    
    对于beta版,如果你想的话 强制用户始终获取最新的,您可以使用:

    Cache-Control: no-cache, must-revalidate
    
    通过

  • 使用
    GET
    变量。添加版本号或任何相关值,这将强制浏览器提取最新文件。例如:

    <a href="12.pdf?ver=1.1">book</a>
    
    通过

  • 资源

    • 缓存指南-Apache HTTP服务器:
    • 如何强制更新缓存的文件、图像、favicon:
    • 如何防止Web浏览器缓存我的页面
    <FilesMatch "\.(htm|html)$">
      ExpiresActive On
      ExpiresDefault A1
      Header append Cache-Control must-revalidate
    </FilesMatch>