xml - 如何阻止浏览器缓存 Apache 提供的 XML 文件? (包括我的htaccess文件)

标签 xml apache .htaccess caching webserver

更新2

我找到了答案,但我不确定为什么需要它以及如何更改 Apache 中的这种行为。

如果我unlink (即删除)XML 文件,然后重新创建它(而不是仅仅覆盖它),然后两个浏览器都会看到新版本!

//This causes a fresh version
unlink( $xmlFileLocation );

//Now creating it will result in a non-cached version being sent
$f = fopen( $xmlFileLocation, "wb" );
fwrite(, $xmlFileLocation, $xml );
fclose( $xmlFileLocation );

如果我在没有 unlink 的情况下执行上述操作,然后它被更改,并且修改日期上更新到磁盘上,但 Apache 继续提供旧版本!为什么?

更新 1 - 尽管启用了 mod_headers,问题仍然发生!

认为我需要启用模块 mod_headers。

sudo a2enmod headers

但 Chrome 和 Firefox 似乎仍然使用旧版本的 XML 文件!

什么可能导致 Apache 继续提供旧版本服务? (清除浏览器缓存没有帮助,磁盘上的文件与在两个浏览器中看到的文件不同)

原始帖子

我试图阻止浏览器缓存我正在提供的 XML 文件,但它不起作用。当我在计算机本身上查看该文件时,它显示它已更新,但在浏览器(Chrome 和 Firefox)中它显示为旧版本!

我确信位于 XML 文件夹中的 htaccess 正在工作(我通过将其更改为 deny from all 进行测试,它正确地显示了 "Forbidden" 响应)。

.htaccess

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

这不会停止缓存!我还能做什么?

编辑我不确定,但我认为 Apache 可能会在服务器端缓存它!我该如何诊断并阻止它?

认为出现这种情况是因为 Chrome 显示了请求 header :

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Host:mywebsite.com
Pragma:no-cache

但它仍然显示缓存版本!

最佳答案

我找到了答案,但我不确定为什么需要它以及如何更改 Apache 中的这种行为。

如果我先取消链接(即删除)XML 文件,然后重新创建它(而不是仅仅覆盖它),那么两个浏览器都会看到新版本!

//This causes a fresh version
unlink( $xmlFileLocation );

//Now creating it will result in a non-cached version being sent
$f = fopen( $xmlFileLocation, "wb" );
fwrite(, $xmlFileLocation, $xml );
fclose( $xmlFileLocation );

如果我在没有 unlink 的情况下执行上述操作,那么它会发生更改,并且修改日期在磁盘上更新,但 Apache 会继续提供旧版本!为什么?

关于xml - 如何阻止浏览器缓存 Apache 提供的 XML 文件? (包括我的htaccess文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031748/

相关文章:

java - 当 Java 类具有 java.util.Properties 时如何进行 JAXB 转换?

apache - 如何解除内部重定向最大数量限制?

php - 使用 .htaccess 从 URL 中删除 PHP 文件扩展名

android - 为什么按钮注册和登录中的文本这么大?

java - 写入docx文件

javascript - 使用 jQuery post 从另一台服务器调用 URL

apache - 如何在 htaccess 中重写 url

php - htaccess 中带有 _escaped_fragment_ 的可抓取 AJAX

mysql - WordPress 迁移到子域因路径不正确而损坏

C# xml读取,显示错误