2012-09-06 37 views
0

爲了避免頁面過期問題,同時點擊後退按鈕,我們在每個頁面中添加了以下代碼。緩存控制和頁面過期問題

header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); 
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); 
header("Cache-Control: post-check=0, pre-check=0",false); 
session_cache_limiter("must-revalidate"); 

有人可以告訴我,有什麼可能的缺點或有什麼辦法來避免頁面過期問題?

+0

但是' Last-Modified'將始終是當前日期... –

+0

@MihaiIorga是的,但是這是修復文檔已過期的問題... –

+0

您已使頁面過期失效。瀏覽器將不得不更新它。你使用什麼Web服務器? –

回答

1

在使用Apache時,您不必使用PHP header()方法。

使用Apache mod_expires模塊,您可以控制服務器響應中HTTP標頭的Expires HTTP標頭和max-age指令的設置。

例如,如果你想希望所有的網頁過期in 1 month(而不是瀏覽器重新加載)您httpd.conf文件中使用下一個配置行,<VirtualHost>部分或.htaccess文件:

ExpiresActive On // Enables "Expires" and "Cache-Control" headers generation 
ExpiresDefault "access plus 1 month" // All resources expire after 1 month 
+0

我們的目標不是緩存,而是爲了避免頁面過期問題,同時點擊後退按鈕。這段代碼正在解決這個問題,但想知道是否有任何使用此代碼的缺點 –

+0

沒有缺點,這是最好的方式,因爲你的php腳本會像往常一樣運行,你不必'退出;'在發送標題後的PHP腳本。 Apache會爲你做所有事情。 –