搜尋

首頁  >  問答  >  主體

php不能使用header快取

<?php
header("Cache-Control: public");
header("Pragma: cache");
$offset = 30*60*60*24; // cache 1 month
$ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
header($ExpStr);
echo date("Y-m-d l H:i:s A");
?>

我設定了一個月的緩存,但是每次刷新顯示的時間都不一樣,請問程式碼哪裡出錯了?

欧阳克欧阳克2751 天前742

全部回覆(1)我來回復

  • 怪我咯

    怪我咯2017-06-30 09:58:14

    頁面每次刷新, 你都發送Header, 當然是每次都更新啦.

    如果http header上有快取頭的話,
    瀏覽器請求這個頁面的時候, 會帶上If-Modified, If-Match, 之類的請求頭,
    你需要根據這個If頭裡面的內容來判斷, 是發送304 Not Modified 還是發送新的頁面.

    回覆
    0
  • 取消回覆