Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php指定缓存控制将导致双倍最大年龄_Php - Fatal编程技术网

php指定缓存控制将导致双倍最大年龄

php指定缓存控制将导致双倍最大年龄,php,Php,当我指定: header('Cache-Control: max-age=31557600'); 结果标题为 Cache-Control: max-age=31557600, max-age=0 它似乎仍然有效,但php所做的似乎是将我的缓存控制头与它在不指定头的情况下发送的内容相结合 有没有办法在php中核取第二个max age=0?罪魁祸首是mod_expires 当mod_过期时,该行处于活动状态 ExpiresDefault A0 存在时,它将对任何与其ExpiresByType指

当我指定:

header('Cache-Control: max-age=31557600');
结果标题为

Cache-Control: max-age=31557600, max-age=0
它似乎仍然有效,但php所做的似乎是将我的缓存控制头与它在不指定头的情况下发送的内容相结合


有没有办法在php中核取第二个max age=0?

罪魁祸首是mod_expires

当mod_过期时,该行处于活动状态

ExpiresDefault A0
存在时,它将对任何与其ExpiresByType指令之一不匹配的内容设置max age=0


因此,如果使用php包装器来缓存您希望浏览器缓存的内容,请不要将ExpiresDefault设置为任何内容,并确保没有为同一mime类型设置ExpiresByType。

您是否尝试将
header
的第二个参数设置为true,并查看这是否会更改任何内容?是的,它没有任何效果。我先尝试了header_remove,结果根本没有缓存控制头在您的
标题
呼叫之后–标题是否已经在结果中弄乱了?否则,这里可能不是PHP做错了什么,但它稍后会被web服务器或在传输过程中损坏。array(4){[0]=>string(31)“缓存控制:max age=31557600”[1]=>string(44)“Last Modified:Mon,Feb 2015 15:03:40 GMT”[2]=>string(35)”Etag:“c05223-819-54eb414c-749cadb”“[3]=>string(21)“Vary:Accept Encoding”}看来是Apache加上的?