2015-02-24 68 views
0

當我指定:PHP指定的Cache-Control導致雙最大年齡

header('Cache-Control: max-age=31557600'); 

結果標題是

Cache-Control: max-age=31557600, max-age=0 

它似乎還在努力,但似乎什麼PHP正在做的是如果我沒有指定標題,則將我的Cache-Control標題與它發送的內容相結合。

有沒有辦法在PHP中摧毀第二個max-age = 0?

+0

您是否嘗試過將'header'的第二個參數設置爲true,看看它是否改變了什麼? – CBroe 2015-02-24 13:26:01

+0

是的,它沒有效果。我首先嚐試了header_remove,結果沒有任何Cache-Control頭。 – 2015-02-24 13:32:29

+1

在你的'header'調用之後做'var_dump(headers_list());'是否已經把結果搞亂了?否則,它可能不是PHP在這裏做錯了事,但稍後它會被網絡服務器或傳輸過程所損壞。 – CBroe 2015-02-24 13:39:32

回答

0

的罪魁禍首是指定mod_expires

當指定mod_expires是積極的,而行

ExpiresDefault A0 

存在,它將把最大年齡= 0上任何不符合其ExpiresByType指令之一。

因此,如果使用PHP包裝器來瀏覽器緩存的內容,請不要將ExpiresDefault設置爲任何內容,並確保沒有爲相同的MIME類型設置ExpiresByType。