Php 如果应用程序未设置,则添加Apache标头

Php 如果应用程序未设置,则添加Apache标头,php,apache,Php,Apache,我试图控制某个目录中文件的缓存。我希望默认缓存时间为15分钟,但如果需要,我希望让应用程序更改它。例如,我可能有一个PHP脚本,我希望每1分钟刷新一次,因此我将在PHP中为该脚本设置缓存控制头。但对于所有其他文件,我只希望缓存时间为15分钟,其中一些是静态文件,所以我不能在PHP中设置默认缓存时间 我当前在Apache配置中有以下内容: <Directory /> Options FollowSymLinks AllowOverride None Header

我试图控制某个目录中文件的缓存。我希望默认缓存时间为15分钟,但如果需要,我希望让应用程序更改它。例如,我可能有一个PHP脚本,我希望每1分钟刷新一次,因此我将在PHP中为该脚本设置缓存控制头。但对于所有其他文件,我只希望缓存时间为15分钟,其中一些是静态文件,所以我不能在PHP中设置默认缓存时间

我当前在Apache配置中有以下内容:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Header set Cache-Control "max-age=900"
</Directory>

选项如下符号链接
不允许超限
标题集缓存控制“最大年龄=900”
这在99%的情况下非常有效,我只需要15分钟的缓存。但是,如果我的PHP脚本设置了缓存控制头,那么这个设置将覆盖它

我看过mod_头的文档,没有一个设置(unset、add、append等)能满足我的需要


提前感谢。

根据php手册

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>


通过发送上面的标题,您应该覆盖可能导致缓存脚本输出的任何设置。

根据php手册

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>


通过发送上面的标题,您应该覆盖任何可能导致脚本输出被缓存的设置。

请查看mod_expires。文档说它不会覆盖由PHP脚本创建的标题:

“当Expires标头已经是由生成的响应的一部分时 服务器,例如由CGI脚本生成或从 作为源服务器,此模块不会更改或添加过期或 缓存控制头。“

以下是mod_expires的配置示例:

 <IfModule mod_expires.c>
     ExpiresActive on
     ExpiresDefault A600
     ExpiresByType image/gif "access plus 1 day"
     ExpiresByType image/jpeg "access plus 1 day"
     ExpiresByType image/png "access plus 1 day"
     ExpiresByType image/x-icon "access plus 1 day"
     <FilesMatch "\.(php|php4)$">
         ExpiresByType text/html "now"
     </FilesMatch> 
 </IfModule>

过期于
到期默认A600
ExpiresByType image/gif“访问加1天”
过期按类型图像/jpeg“访问加1天”
ExpiresByType图像/png“访问加1天”
ExpiresByType图像/x图标“访问加1天”
ExpiresByType文本/html“立即”过期
取自


祝你好运

看一看mod_expires。文档说它不会覆盖由PHP脚本创建的标题:

“当Expires标头已经是由生成的响应的一部分时 服务器,例如由CGI脚本生成或从 作为源服务器,此模块不会更改或添加过期或 缓存控制头。“

以下是mod_expires的配置示例:

 <IfModule mod_expires.c>
     ExpiresActive on
     ExpiresDefault A600
     ExpiresByType image/gif "access plus 1 day"
     ExpiresByType image/jpeg "access plus 1 day"
     ExpiresByType image/png "access plus 1 day"
     ExpiresByType image/x-icon "access plus 1 day"
     <FilesMatch "\.(php|php4)$">
         ExpiresByType text/html "now"
     </FilesMatch> 
 </IfModule>

过期于
到期默认A600
ExpiresByType image/gif“访问加1天”
过期按类型图像/jpeg“访问加1天”
ExpiresByType图像/png“访问加1天”
ExpiresByType图像/x图标“访问加1天”
ExpiresByType文本/html“立即”过期
取自


祝你好运

我在Apache中的设置将覆盖我在PHP中设置的任何内容。所以,不幸的是,这对我不起作用。我很确定这个解决方案必须涉及Apache配置。我在Apache中的设置将覆盖我在PHP中设置的任何内容。所以,不幸的是,这对我不起作用。我敢肯定,解决方案必须涉及Apache配置。