apache配置Expire/Cache-Control頭

周大俠啊發表於2018-03-29

apache 配置 Expire/Cache-Control 頭

這裡我使用的是Apache2.4.17

開啟apache安裝目錄,找到conf目錄,用記事本開啟httpd.conf 檔案。

ctrl+f 查詢 LoadModule expires_module modules/mod_expires.so
去掉前面 #號!

在文字最後面新增:

<IfModule expires_module>
    
    #開啟快取
    ExpiresActive on 
    #css檔案快取7200000/3600/24=83天
    ExpiresByType text/css A7200000

    #js檔案快取83天
    ExpiresByType application/x-javascript A7200000
    ExpiresByType application/javascript A7200000

    #html檔案快取83天
    ExpiresByType text/html A7200000

    #圖片檔案快取83天
    ExpiresByType image/jpeg A7200000
    ExpiresByType image/gif A7200000
    ExpiresByType image/png A7200000
    ExpiresByType image/x-icon A7200000
    
  </IfModule>

上面開啟的是expire

下面是cache-control
在文字後面繼續新增

<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
   Header set Cache-Control "max-age=604800, public"
</FilesMatch>

<FilesMatch ".(css|js)$">
   Header set Cache-Control "max-age=604800, public"
</FilesMatch>

這裡時間設定不一樣是為了檢驗是否成功配置的,因為,沒設cache-control的時候,它會自動根據expire的時間設定自己。

最後重啟apache伺服器,ok!

這裡說一個自己爬的坑吧!(那就是如果不出現 200 form cache, 而是出現了304,那是因為,你重新整理了瀏覽器。。。想要出現 200 form cache,需要在瀏覽器位址列裡按Enter鍵。)

也就是說:重新整理瀏覽器 觸發 304, 位址列回車觸發 200 form cache。

查了好久才發現了,之前一直想不通,既然設定了cache-control和expire為啥還是304,這就是原因,就是這麼簡單。。。


相關文章