內文
mod_expires 會在所啟用快取類型的 Response Headers 中加入 Expires 資訊, 瀏覽器接收到該資訊便知道該資源是可快取的, 之後再度讀取該資源便會使用本機端的 cache 而不會再度向 server 發出 request 的要求, 進而減少 server 的頻寬和資源消耗。
該模組預設下是沒有啟動的 (在 ubuntu 14.04 LTS 下安裝的 apache2),也可透過指令來查詢該模組是否已啟用:
# a2query -m expires
啟用模組:
# a2enmod expires
設定模組(全域啟用):
# vi /etc/apache2/apache2.conf
#範例# 在任意處添加:
<IfModule mod_expires.c> ExpiresActive On #No cache by default type ExpiresDefault A0 #cache 1 year <FilesMatch ".(svg|eot|woff|ico|pdf|avi|mov|ppt|doc|mp3|m4v|wmv|wav)$"> ExpiresDefault A29030400 </FilesMatch> #cache 1 week <FilesMatch ".(gif|jpg|jpeg|png|swf)$"> ExpiresDefault A604800 </FilesMatch> #cache 1 month <FilesMatch ".(xml|txt|html|js|css)$"> ExpiresDefault "access plus 1 month" </FilesMatch> </IfModule>
如要在某個資料夾下作用用法則是將設定寫在 .htaccess 裏頭
參數說明:
ExpiresActions On | Off – 開啟或關閉Expires 功能
ExpiresDefault base | plus | num | num type
base 接受的類型有:
- access
- now (相當於 access)
- modification
num type 接受的類型有:
- years
- months
- weeks
- days
- hours
- minutes
- seconds
example: ExpiresDefault access plus 2 hours (訪問後兩個小時)
或者用下面語法較為簡短:
ExpiresDefault <code>seconds – code 相當於 base 的開頭縮寫
example: ExpiresDefault A14400 (訪問後四個小時)
time cheat sheet
# 300 5 MIN # 600 10 MIN # 900 15 MIN # 1800 30 MIN # 2700 45 MIN # 3600 1 HR # 7200 2 HR # 10800 3 HR # 14400 4 HR # 18000 5 HR # 36000 10 HR # 39600 11 HR # 43200 12 HR # 46800 13 HR # 50400 14 HR # 54000 15 HR # 86400 1 DAY # 172800 2 DAY # 259200 3 DAY # 345600 4 DAY # 432000 5 DAY # 518400 6 DAY # 604800 1 WEEK # 1209600 2 WEEK # 1814400 3 WEEK # 2419200 4 WEEK # 4838400 2 MONTH # 7257600 3 MONTH # 9676800 4 MONTH # 12096000 5 MONTH # 14515200 6 MONTH # 16934400 7 MONTH # 19353600 8 MONTH # 21772800 9 MONTH # 24192000 10 MONTH # 26611200 11 MONTH # 29030400 12 MONTH
更詳盡的用法可參照 apache2 doc