什么可以在我的回复标题中添加"Pragma:no-cache"?(Apache,PHP)

Dan*_*ola 30 php apache caching pragma http-headers

我有一个网站,我继承了维护,这是一个很大的毛病.
我正在做的一件事就是提高性能.除此之外,我正在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
Run Code Online (Sandbox Code Playgroud)

这显然解释了这个问题.

现在,我看了整个代码库,并没有在任何地方说"pragma"..htaccess似乎没有任何相关的东西.

什么想法可以设置那些"pragma"(和"缓存控制")标题,我怎么能避免它?

tec*_*age 28

罪魁祸首可能是php.ini,其中session.cache_limiter = nocache.将值更改为空白或公共以避免反缓存标头.


Mah*_*hks 11

我有类似的问题 Pragma: nocache

session_cache_limiter(false);之前session_start();似乎压制了它.


Ala*_*orm 10

创建一个简单的文件,其中包括关你的PHP库,但居住在同一个文件夹中,通过一个PHP文件提供了您的图片文件.

file: test.php
Run Code Online (Sandbox Code Playgroud)

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

<Directory....
Run Code Online (Sandbox Code Playgroud)

<VirtualHost
Run Code Online (Sandbox Code Playgroud)

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

如果你没有看到在简单的PHP文件的请求头,你知道PHP是什么地方设置标头.在图像的最后文件服务(它回声图像并退出或之后),但下面的PHP代码片段)

var_dump(get_included_files());
Run Code Online (Sandbox Code Playgroud)

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

让你的文件的子集工作文件,搜索它们的调用

header();
Run Code Online (Sandbox Code Playgroud)

功能.该header函数是(我认为)原始PHP代码可以设置Response头的唯一方法.你也想搜索

call_user_func
eval
$$
Run Code Online (Sandbox Code Playgroud)

如果页面上有任何动态代码使用PHP的元编程功能来调用该header函数.

祝好运!


Bal*_*usC 8

尝试取消设置标题.htaccess.下面的例子将取消或修改它们匹配的扩展名的所有文件ico,jpeg,png,gif,js,css:

<FilesMatch "\.(ico|jpeg|png|gif|js|css)$">
    Header unset Cache-Control
    Header unset Pragma
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

您可以在本文中找到一些提示.