什么可以添加“Pragma:no-cache”到我的响应标题? (Apache,PHP)

我有一个网站维护我继承了,这是一个大毛躁的混乱。
我做的事情之一是提高性能。除此之外,我还要为图片添加Expires标头。

现在,有一些图像通过PHP文件,我注意到,他们有Expires头,但他们也得到加载每次。

看看响应头,我看到了:

Expires Wed, 15 Jun 2011 18:11:55 GMT
Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma  no-cache

这显然解释了这个问题。

现在,我已经查看了所有的代码库,它不会在任何地方说“pragma”。 .htaccess似乎没有任何相关的。

任何想法什么可以设置这些“pragma”(和“缓存控制”)头,我怎么可以避免它?

最佳答案
创建一个简单的文件,它不包含任何PHP库,但与通过PHP文件提供图像的文件位于同一文件夹中。

file: test.php

通过浏览器请求此文件并检查标题。如果您看到不需要的响应头,您知道它们是通过apache配置的,而不是通过PHP文件生成的,您可以集中搜索目录树中的.htaccess文件,以及http.confg和其他包括apache配置文件。你想搜索

<Directory....

<VirtualHost

可能适用于您的网站的部分。

如果你在一个简单的PHP文件的请求中没有看到头文件,你知道PHP正在设置头文件。在图片投放文件的结尾(或者在图片播放完毕后退出),但是以下PHP代码段)

var_dump(get_included_files());

通过图片投放网址请求图片。上面的代码段将打印出请求中使用的所有PHP文件。 (您可能需要查看源代码或使用curl查看原始输出,因为浏览器将报告无效图像)

将文件的子集添加到工作文件中,搜索它们以调用

header();

功能。头部函数是唯一的方式(我认为)原始PHP代码可以设置响应头。你也想搜索

call_user_func
eval
$$

如果页面上有任何动态代码使用PHP的元编程能力来调用头函数。

祝你好运!

转载注明原文:什么可以添加“Pragma:no-cache”到我的响应标题? (Apache,PHP) - 代码日志