当我的 PHP 应用程序返回 301 状态代码时,我想自动向响应添加一些标头以防止缓存重定向。
Header set "Expires" "Tue, 03 Jul 2001 06:00:00 GMT"
Header set "Cache-Control" "no-store, no-cache, must-revalidate, max-age=0"
Header set "Pragma" "no-cache"
虽然我通常会在应用程序级别添加此内容,但由于此应用程序的构建方式,这不是一个快速修复。作为权宜之计,如果可能的话,我想配置 Apache 以添加这些标头。
如何根据响应状态代码有条件地添加这些标题?
可能相关: 根据 apache 的代理响应代码添加标头
答案1
我认为使用 apache 是不可能的(问题在于条件),但我有一个想法,如何在应用程序级别解决它,但不改变实际的应用程序。
不确定你是否能做到,但它应该有效 - 无论如何,我只是想帮忙:-)
我将在某处创建一个 PHP 脚本,定义修复标头的函数并将其注册为关闭功能PHP 的:
<?php
function fix_headers_on_shutdown() {
$headers = headers_list();
if(/* TODO: is redirect condition */) {
header('Expires: Tue, 03 Jul 2001 06:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
}
}
register_shutdown_function('fix_headers_on_shutdown');
?>
然后让 PHP 在每个 PHP 脚本的开头包含此脚本自动添加文件配置选项。