mod_expires可以減少10%左右的重複請求,讓重複的使用者對指定的頁面請求結果都CACHE在本地,根本不向伺服器發出請求。
在使用之前,首先要確認一下”mod_expires”模組是否有啟用.如果是自己安裝Apache來架設網頁主機的話,這裡我們可以透過編輯Apache的”httpd.conf”設定檔來處理.搜尋一下,你可能會找到這麼一行:
#LoadModule expires_module modules/mod_expires.so
複製程式碼
將該行前面的”#”字號刪除,然後將”httpd.conf”啟動Apache來使這個更新生效.
當然如果我們是租用虛擬主機的話,”httpd.conf”設定檔我們一般用戶是接觸不到的,而在網站根目錄裡寫個”.htaccess”設定檔, 我想在運用上相對是較靈活的.”mod_expires”的設定資料除了可以寫在Apache的”httpd.conf”設定檔中,也可以寫在”.htaccess”設定檔裡.
我們知道在使用瀏覽器瀏覽網頁時,瀏覽器會把網頁資料緩存(Cache)下來儲存在本機端,用以加快下回瀏覽相同網頁時不必再重新由網站上下載,進而有加速的效果.使用mod_expires模組來加速網頁瀏覽,這裡所謂的”加速”,其實是利用”mod_expires”的功能,來設定網頁文件的過期時間,加長網頁文件被瀏覽器緩存(Cache)保存的時間.如此一來,只要網頁文件的過期時間未到,瀏覽器就會引用緩存的資料,而不用花時間再去下載網站上的資料.另一方面帶給站長的好處是,可以減少瀏覽者對網站的流量耗用(例如有些虛擬主機有限制網站可使用的流量).
接下來我們直接由範例中來學習吧.
範例一:
s.c>
ExpiresActive On
ExpiresDefault A86400
ExpiresByType image/x-icon A2592000
ExpiresByType application/x-javascript A2592000
ExpiresBpirespun 月2592005 月00
ExpiresByType image/png A604800
ExpiresByType image/jpeg A604800
ExpiresByType text/plain A604800
ExpiresByType application/x-shockwave-flash A604800
ExpiresByType video/x-flv A604800
ExpiresByType video/x-flv A604800text/html A900
複製程式碼
範例三:
ExpiresActive On
ExpiresDefault A0
# 1 年
? wav)$”>ExpiresDefault A9030400 # 1 星期 來包夾指令可以避免在mod_expires模組沒有啟用的情況下還要去執行.如果mod_expires模組確定已經啟用,那不寫
ExpiresActive On是指啟用mod_expires功能,相對的Off就是關閉功能.
ExpiresDefault指令是設定預設的過期時間.
從範例一和範例二中,各位可以看到關於時間設定的方式有分兩種,一個是文字敘述型,一個是代碼加上秒數型.文字敘述型:
“access plus 10 days”意指瀏覽時起算10天.依照Apache官方說明文件,過期起算時間有三種,分別是access 、now 以及modification.其中access與now意義相同,而modification指的是網頁文件的」最後編輯時間」.所以如果要以檔桉的最後編輯時間起算,可以寫成這樣,”modification plus 10 days”.而時間的指定也很簡單,就是英文單字(years、months、weeks、days、hours、minutes、seconds).例如,可以寫成這樣,”access plus 1 month 15 days 2 hours”.代碼加上秒數型:A86400意指瀏覽時起算1天.格式是代碼加上秒數.代碼有分兩種,”A”等同”access”,意指瀏覽時起算過期時間.使用代碼”A”比較適合應用在不常變動的網頁文件類型,例如圖片.另外一種代碼是”M”,其意義等同於”modification”,指的是網頁文件的”最後編輯時間”.使用代碼”M”比較適合應用在經常變動的網頁文件類型,例如HTML頁面這類經常更新內容的資料.秒數資料我在文後附上參考資料,可以供各位快速參考.
ExpiresByType指令是依照不同的網頁檔案型態來做期時間設定.
例如,ExpiresByType text/css A2592000,意指網站上的CSS風格檔3天后過期; ExpiresByType image/gif A604800,意指網站上的Gif圖檔在7天後過期.
範例三里,使用了
利用Apache模組mod_expires和mod_headers實作檔快取,Add an Expires header|指定Expires
利用Apache模組mod_expires和modheadersers 實作檔案
利用Apache模組Expimire在使用YSlow的網站速度優化,常常會看到Add an Expires header這一分值很低,搜尋很多但還不知道怎麼該。下面就是答案。
Add an Expires header / 為檔案頭指定Expires
給靜態檔案加上過期標誌。讓瀏覽器或CDN伺服器快取起來,加速圖片和其他靜態檔案的載入。
Expires是瀏覽器Cache機制的一部分,瀏覽器的快取取決於Header中的四個值: Cache-Control, Expires, Last-Modified, ETag。
優化這個選項,要做的是對站內所有的檔案有針對性的設定Cache-Control和Expires.
我們要實現加上過期標誌可以利用apache模組mod_expires和mod_headers。
透過設定.htaccess文件, 可以輕易地依文件類別設定快取時間。對提高網站速度有一定幫助。
1. 利用mod_expires
在.htaccess中加入下列語句:
expiresactive on
#預設所有檔案快取時間設定為300秒
exp.秒
expiresbytype text/plain a300
#css, javascript快取一個小時
expiresbytype application/x-javascript36000350303030 月icon a2592000
#image類別快取一個星期
expiresbytype image/gif a604800
expiresbytype image/pngh a604800一個星期lash a604800
expiresbytype application/pdf a604800
同樣在.htaccess檔案中加入下列內容可實現快取:
# htm,html,txt類別的檔案快取一個小時
# css, js, swf類別的檔案快取一個星期
header set cache-control “max-age=29030400″
「以下為樣本碼:
「以下為樣本碼:
Header set Cache-Control “max-age=18000, public, must-revalidate”