PHP缓存头覆盖

Soy*_*oyo 5 php cache-control

我在这里已经回答了 100 多个答案,有很多尝试,没有任何效果??

有一个基于 PHP 的站点。我需要为所有 .php 文件关闭缓存,除了少数几个。

所以,在 .htaccess 中,我有以下内容:

ExpiresActive On
# Eliminate caching for certain dynamic files
<FilesMatch "\.(php|cgi|pl)$">
ExpiresDefault A0
Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

使用 Firebug,我看到以下内容:

Cache-Control   no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform
Connection  Keep-Alive
Content-Type    text/html
Date    Sun, 02 Sep 2012 19:22:27 GMT
Expires Sun, 02 Sep 2012 19:22:27 GMT
Keep-Alive  timeout=3, max=100
Pragma  no-cache
Server  Apache
Transfer-Encoding   chunked
X-Powered-By    PHP/5.2.17
Run Code Online (Sandbox Code Playgroud)

嘿,看起来很棒!

但是,我有几个 .php 页面,我需要一些非常短的缓存。

我认为简单的答案是将它添加到我想要启用缓存的每个 php 页面的最顶部:

<?php header("Cache-Control: max-age=360"); ?>
Run Code Online (Sandbox Code Playgroud)

不。

然后我尝试了上面的各种版本。不。

然后我尝试了元 http-equiv 变体。不。

然后我尝试了 .htaccess 代码的变体以及上述变体,例如将其限制为:

# Eliminate caching for certain dynamic files
<FilesMatch "\.(php|cgi|pl)$">
Header set Cache-Control "no-cache, max-age=0"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

不。

似乎我所做的一切都不会允许使用 .htaccess 代码对单个 .php 进行缓存,而不是完全从 .htaccess 文件中删除语句。

我哪里错了?我该怎么做才能让单个 php 页面可缓存,而其余页面保持关闭?

谢谢你的任何想法。

Soy*_*oyo 3

嗯,显然这没有答案。因此,我此时的解决方案是完全消除 .htaccess 代码,并对每个文件应用显式标头。一种你知道的痛苦,但是时候继续前进了。如果有人有更优雅的解决方案可以使用 .htaccess 默认值,请随时分享...谢谢