2011-06-23 39 views
0

我們可以把這個在我們的.htaccess添加遙遠的未來日期到期日期

ExpiresDefault "access plus 10 years" 

操縱我們的到期日期,我們希望這對我們的PHP文件中進行操作。在尋找一個像這樣的東西。我遇到了:

$offset = 60 * 60; 
$expire = 'expires: ' . gmdate ('D, d M Y H:i:s', time() + $offset) . ' GMT'; 
header ($expire); 

但是,這隻會增加我們的過期日期。爲了我們;我們希望這一年發生改變。有沒有辦法在PHP中這個?

+2

請注意:「將過期時間設置爲最少一個月,最好是將來一年,......將來不要超過一年,因爲違反了RFC準則。「 (來自[優化緩存](http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching)) – jensgram

+1

(不再能夠編輯我上面的評論,所以在這裏。)[部分HTTP/1.1 RFC(2616)的RFC 14.21](http://tools.ietf.org/html/rfc2616#section-14.21)明確規定:「爲了將響應標記爲」永不過期「,源服務器發送」過期日期大約是發送回覆後的一年** HTTP/1.1服務器不應該在將來發送超過一年的過期日期**「(我強調) – jensgram

+0

停止在您的標題中寫標籤請。 –

回答

9

你可以這樣做:

$expire = 'Expires: ' . gmdate('D, d M Y H:i:s', strtotime('+10 years')) . ' GMT'; 
header($expire); 

我使用strtotime創建的當前時間+ 10年的時間戳。

1

你做得對。只需在幾秒鐘內將偏移量增加到10年。

+1

只是確保你考慮閏年和秒。 –

+1

@Salman A在這種情況下,我真的不認爲精度很重要。我很難相信,無論如何,任何事情都會*緩存十年的資源(給予或幾秒的飛躍)。 – jensgram

+1

是的,我只是在開玩笑:) –

1

爲了將到期日期設置爲提前一年,您需要較大的$ offset,當前僅爲一小時(一分鐘內60秒* 60分鐘內)。

$offset = 365*24*60*60;