2014-12-26 37 views
1

我已經在我的htaccess文件中添加了過期標題,所以仍然需要添加mod_header緩存控制? 我的到期標題是:expire標題和緩存控制與mod標頭

<IfModule mod_expires.c> 

ExpiresActive On 

ExpiresDefault "access plus 1 month" 

ExpiresByType image/x-icon "access plus 1 year" 

ExpiresByType image/gif "access plus 1 month" 
ExpiresByType image/png "access plus 1 month" 
ExpiresByType image/jpg "access plus 1 month" 
ExpiresByType image/jpeg "access plus 1 month" 

ExpiresByType text/css "access 1 month" 

ExpiresByType application/javascript "access plus 1 year" 
</IfModule> 

和我的緩存控制mod_header是:

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


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

+0

上面的代碼真正面臨什麼問題? – anubhava

回答

2

讓我們讀the documentation for mod_expires

該模塊控制的設定到期HTTP頭和在服務器 響應的緩存控制HTTP頭的 最大年齡指令。到期日期可以設置爲相對於源文件上次修改時的 時間,或者相對於客戶端訪問時間。

答案是:這取決於。

mod_expires設置max-age指令,但不會設置告訴客戶端緩存是公有還是私有的指令。如果沒有定義,我相信緩存會盡力確定是否要緩存這個特定的響應。另一方面,使用mod_header設置Expires-header是不可能的。

我認爲在你的情況下,mod_header規則已經過時,但你可能想檢查瀏覽器中的請求,看看緩存是否按照你的預期發生。