为特定的响应状态代码设置Apache响应标头

当我的PHP应用程序返回一个301状态代码时,我想自动添加一些头到响应,以防止cachingredirect。

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" 

虽然我通常会在应用程序级别添加此应用程序,但由于此应用程序的构build方式,这不是一个快速的解决scheme。 作为一个解决scheme,我想configurationApache来添加这些头文件,如果可能的话。

如何根据响应状态代码有条件地添加这些标头?

可能相关: 根据代理的响应代码添加一个头与Apache

我不认为这是可能的使用Apache(问题是条件),但我有一个想法如何解决它在应用程序级别,但不改变实际的应用程序。

不知道,它可以做到,但它应该工作 – 无论如何,我只是试图帮助:-)

我会创build一个PHP脚本定义函数修复头文件并注册为PHP的关机function :

 <?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用auto_prepend_fileconfiguration选项在每个PHP脚本的开始处包含这个脚本。