2011-07-19 110 views
1

我有一個基於PHP的網站,並希望瀏覽器緩存圖像30天..我使用共享主機解決方案,我沒有訪問Apache配置,以啓用國防部-headers或其他模塊,因此不能使用htaccess機制。強制瀏覽器緩存圖片在PHP網站

我的網站是一個普通的PHP應用程序,並具有html內容和圖像。我希望瀏覽器只緩存圖片。我已經看到了php的「標題」功能,但是找不到一種只強制圖像緩存的方法。我該如何解決它?

感謝

+0

可能的重複[如何強制Web瀏覽器緩存圖像](http://stackoverflow.com/questions/1285354/how-to-force-a-web-browser-to-cache-images) – hakre

+0

另一個杜佩:[如何讓瀏覽器緩存圖像,與PHP?](http://stackoverflow.com/questions/1385964/how-to-get-the-browser-to-cache-images-with-php) – hakre

+0

是HTTP/1.0或HTTP/1.1或兩者兼而有之請求的類型? – hakre

回答

3

據我所知,如果你不能訪問到Apache設置標題,你唯一的另一種選擇是從PHP腳本服務的圖像,因此您可以用PHP頭的方法設置標題。

在這種情況下,您需要編寫一個PHP圖像處理程序,並將所有圖像標記替換爲對該處理程序的調用(例如http://mysite.com/imagehandler.php?image=logo.png)。然後,您可以讓imagehandler.php腳本從文件系統中檢索圖像,設置MIME類型和緩存控制標題,並將圖像傳回客戶端。

你可以編寫自己的,或者如果你是谷歌,你會發現圖像處理PHP腳本。無論哪種方式,請確保您專注於安全性 - 不允許客戶端從您的Web服務器檢索任意文件,因爲這將是一個相當嚴重的安全漏洞....

+0

哇!這將是一個太大的變化..順便說一句,只是通過設置標題緩存時代會緩存整個頁面(包括數據)? –

+0

HTTP標頭適用於每個請求 - 所以不,我不認爲你可以設置頁面緩存所有的孩子。 是的,這是一個巨大的變化.... –