今天學習了下如何在 apache 中設定快取時間,記之以備忘。
在 http 報文頭中,與快取時間有關的兩個欄位是 expires 以及 cache-control 中的 max-age,expires 設定了乙個快取的過期時間,而 max-age 則設定了乙個快取有效時間(單位秒),通常情況下,兩者可以相互推得。(詳細參考 瀏覽器快取機制**)
還是用 wampserver 舉例。我們在 www 資料夾下新建個 index.html 頁面,在瀏覽器中開啟它,得到的 http 響應頭如下:
很顯然,我們並沒有看到 expires 或者 max-age 字樣。
比如我要把 max-age 設定成 1000,how?
開啟 httpd.conf 檔案(比如我的是在 f:\wamp\bin\apache\apache2.2.17\conf 下),找到這一行:
#loadmodule expires_module modules/mod_expires.so
去掉注釋(井號),然後再加上這麼兩行,再重啟下apache,就 ok 了:
expiresactive on
expiresbytype text/html a1000
我們看到 max-age 欄位也出現在了響應頭中,其實它是根據 expires 的設定自動填充的。
其他設定類似:
#啟用expires_module模組
loadmodule expires_module modules/mod_expires.so
# 啟用有效期控制
expiresactive on
# gif有效期為1個月
expiresbytype image/gif a2592000
# html文件的有效期是最後修改時刻後的一星期
expiresbytype text/html m604800
#以下的含義類似
expiresbytype text/css "now plus 2 months"
expiresbytype text/js "now plus 2 days"
expiresbytype image/jpeg "access plus 2 months"
expiresbytype image/bmp "access plus 2 months"
expiresbytype image/x-icon "access plus 2 months"
expiresbytype image/png "access plus 2 months"
我們也可以直接修改 max-age 字段。
同樣在 httpd.conf 檔案中,找到這麼一行:
#loadmodule headers_module modules/mod_headers.so
去掉注釋(井號),再加上這麼一句,重啟下 apache,就 ok 了:
header set cache-control "max-age=1000"
我們發現得到的響應頭里並沒有 expires 字段。
參考:
如何設定網頁靜態內容快取時間(apache)
apache 設定expires和max-age快取
webserver快取策略設定-apache
mybatis 008 與快取有關的設定
和快取有關的設定 1.cacheenabled value false 關閉二級快取,一級快取一直可用 2.getlist resulttype emp usecache true usecache false 二級快取不使用,一級快取照常使用 3.每個增刪改標籤都有flushcache true ...
Apache設定檔案快取時間
apache要設定檔案快取時間,要依靠乙個叫mod expires的模組,但是,我們的機器上,原本是沒有安裝這個模組的,幸運的是,apache安裝這個模組很簡單,首先找到源 比如我們的是2.2.22的版本 這樣就完成了mod expores模組的安裝,下面需要修改一下配置檔案 在裡面加入如下語句 啟...
如何在Apache中開啟虛擬主機
首先在apache的安裝目錄下的conf extra httpd vhosts.conf中新增如下 虛擬主機埠號 serveradmin 1778023831 qq.com 伺服器管理員郵箱 documentroot e phpworkj think public index.php 虛擬主機需要對...