2009-12-27 33 views
3

我使用的是Apache服務器上的PHP。我無法設置過期頭,在.htaccess中,我的工作在服務器上,因爲它是一個共享的服務器和他們(虛擬主機)將不會安裝在Apache構建的指定mod_expires模塊。 我一直使用的ExpiresActive On並設置.htaccess文件中的圖像,jsxml和文本文件的默認緩存過期。用於設置過期標題的mod_expires的替代方法?

我有什麼其他選擇?

謝謝。

+0

這聽起來有點奇怪,因爲你的主機長時間以來一直和Apache捆綁在一起,所以沒有安裝'mod_expires'。我肯定會改變主機!現在即使是最便宜的共享網絡託管服務也安裝了'mod_expires'。 – 2012-04-05 20:11:20

回答

1

有人會拿出,沒有模塊工作在Apache具體的解決方案,但作爲最後的手段,如果沒有別的辦法,你可以借道PHP和輸出頭有你的所有流量。但這意味着通過PHP解釋器發送所有資源,並且成本非常高昂。

+0

有人做過。見[這個答案](http://webmasters.stackexchange.com/a/3271/9823)。 – Aeyoun 2013-05-03 16:14:04

4

你可以用的.htaccess和不指定mod_expires做到這一點。

<IfModule mod_headers.c> 
    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
    Header set Expires "Wed, 15 Apr 2020 20:00:00 GMT" 
    Header set Cache-Control "public" 
    </FilesMatch> 
</IfModule> 
+1

或者,使用'Header set Cache-Control「max-age = seconds」'。由於您不應將到期日期設置爲一天以上。 'max-age'更靈活,不需要定期更新。秒的訪問時間。 – Aeyoun 2013-05-03 19:43:24

+0

這應該是「一年」,對不起。源代碼是W3C的緩存最佳實踐。 – Aeyoun 2013-05-03 20:29:03

相關問題