我已經通過了超過100個答案在這裏,很多嘗試,沒有工作??PHP高速緩存頭覆蓋
有一個基於PHP的網站。我需要緩存關閉所有.php文件EXCEPT A SELECT FEW。
所以,在.htaccess中,我有以下幾點:
ExpiresActive On
# Eliminate caching for certain dynamic files
<FilesMatch "\.(php|cgi|pl)$">
ExpiresDefault A0
Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
</FilesMatch>
用Firebug,我看到以下內容:
Cache-Control no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform
Connection Keep-Alive
Content-Type text/html
Date Sun, 02 Sep 2012 19:22:27 GMT
Expires Sun, 02 Sep 2012 19:22:27 GMT
Keep-Alive timeout=3, max=100
Pragma no-cache
Server Apache
Transfer-Encoding chunked
X-Powered-By PHP/5.2.17
嘿,看起來不錯!
但是,我有一個.php頁面,我需要一些非常短暫的緩存。
我認爲簡單的答案是有這個加到我想每個緩存PHP頁面的最頂端啓用:
<?php header("Cache-Control: max-age=360"); ?>
都能跟得上。
然後我嘗試了上面的各種版本。不。
然後我嘗試meta http-equiv版本。不。
然後我試圖htaccess的代碼的變化與上述的變化一起,例如將其限制到:
# Eliminate caching for certain dynamic files
<FilesMatch "\.(php|cgi|pl)$">
Header set Cache-Control "no-cache, max-age=0"
</FilesMatch>
不。
我似乎沒有做任何事情可以允許一個.php文件啓用緩存,而.htaccess代碼已經啓用,完全沒有從.htaccess文件中刪除語句。
我哪裏錯了?我必須做些什麼才能讓單個PHP頁面可以緩存而其餘的頁面仍然可用?
謝謝你的任何想法。
只需再添加一個FilesMatch節來匹配需要緩存的文件? – meze
嗨,謝謝 - 我正在考慮類似的東西,但需要打開的緩存文件是從模板中動態生成的,並且可以自由命名 - 所以我將頭添加到模板本身。我想我可以嘗試強制名稱前置或某物並嘗試通配符 - 但似乎我不應該去那個極端? – Soyo