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


forcing browser to cache images in php website

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

我的网站是一个常规的PHP应用程序,并有HTML内容和图像。我希望浏览器只缓存图像。我见过php的"header"函数,但找不到一种方法来强制只有图像缓存。我该怎么做呢?

谢谢

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

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

你可以自己写,或者如果你谷歌,你会找到图像处理程序PHP脚本。无论哪种方式,请确保您关注安全性—不要允许客户端从web服务器检索任意文件,因为这将是一个相当大的安全漏洞....