2
想知道這是可能的.htaccess?.htaccess緩存靜態內容(除非修改)?
我目前通過PHP緩存.js,.css和所有圖像文件(並且只在文件沒有通過檢查filemtime())被修改時才提供緩存。
然而有人認爲它可能通過.htaccess和更快,所以希望也許有人可以擺脫一些光...我環顧四周,發現各種片段,但沒有涵蓋我所追求的。
想知道這是可能的.htaccess?.htaccess緩存靜態內容(除非修改)?
我目前通過PHP緩存.js,.css和所有圖像文件(並且只在文件沒有通過檢查filemtime())被修改時才提供緩存。
然而有人認爲它可能通過.htaccess和更快,所以希望也許有人可以擺脫一些光...我環顧四周,發現各種片段,但沒有涵蓋我所追求的。
如果你的mod_expires安裝在你的apache服務器上,你可以在你的.htaccess
文件中加入類似的東西。這個例子是PHP定位的(實際上是從Drupal 7 .htaccess
文件中抓取的),但應該是一個很好的起點。
FileETag MTime Size
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior.
ExpiresActive Off
</FilesMatch>
</IfModule>
謝謝,但是如果緩存內容被修改,會發生什麼情況,直到緩存被清除或自動更新,它仍然會檢索緩存的內容? – user962026
道歉我沒有完全閱讀,我已經更新了上面的代碼以在頂部包含FileETag標識符,它告訴服務器如果內容沒有改變,不發送完整的響應。這裏有一個[更完整的解釋](http://stuntsnippets.com/etags-htaccess/),但是這個想法是,如果內容改變了,新的內容將被返回。 – Clive
真棒如此與片段,它會緩存所有非.php文件(如靜態)2個星期,如果文件已被修改它會自動返回修改後的版本? – user962026