php-检查图像修改时间的HTACCESS图像缓存规则

我以两种不同的方式提供图像:

>例如,将PHP脚本用于个人资料图片
>通过直接指向它们,例如图标和背景

我正在适当地处理它们的缓存,对此我是全新的.

对于PHP脚本,我只是向响应中添加一个Last-Modified头,并且如果文件未更改(使用filemtime()),则如果再次调用它,则会提供304状态代码.

对于直接访问,我使用的是HTACCESS,但是到目前为止,我看到的每个规则都不允许我执行与PHP脚本中相同的操作(检查文件是否已更改,然后提供304或文件本身).

这是我计划使用的HTACCESS规则:

Header unset Pragma
FileETag None
Header unset ETag

# cache images/pdf docs for 10 days
<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif)$">
  Header set Cache-Control "max-age=864000, public, must-revalidate"
  Header unset Last-Modified
</FilesMatch>

据我了解,更新缓存图像的唯一方法是重命名它.有人知道解决方法吗?例如,通过检查图像的最后修改日期?

解决方法:

您可以使用mod_expires(如果有):

<FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif)$">
  ExpiresDefault "modification plus 10 days"
</FilesMatch>
上一篇:php-.htaccess重写规则不起作用


下一篇:PHP-.htaccess重写URL无法正确显示?