强制浏览器在php网站中缓存图像

时间:2011-07-19 11:38:04

标签: php image caching browser header

我有一个基于php的网站,并希望浏览器将图像缓存30天..我正在使用共享托管解决方案,我无法访问apache配置以启用mod-headers或其他模块,因此可以不要使用htaccess机制。

我的网站是一个常规的PHP应用程序,并具有HTML内容和图像。我想浏览器只缓存图像。我已经看过php的“标题”功能,但是找不到强制图像缓存的方法..我该怎么办呢?

由于

1 个答案:

答案 0 :(得分:3)

据我所知,如果您无法访问Apache来设置标头,那么您唯一的另一个选择是从PHP脚本提供图像,以便您可以使用PHP标头方法来设置标头。

在这种情况下,您需要编写一个PHP图像处理程序,并使用对此处理程序的调用替换所有图像标记(例如http://mysite.com/imagehandler.php?image=logo.png)。然后,您可以使用imagehandler.php脚本从文件系统中检索图像,设置mime类型和缓存控制头,并将图像流回客户端。

您可以自己编写,或者如果您使用谷歌,您将找到图像处理程序PHP脚本。无论哪种方式,请确保您专注于安全性 - 不要让客户端从您的Web服务器检索任意文件,因为这将是一个相当重要的安全漏洞....