使用htaccess或php文件只缓存静态文件


Using htaccess or a php file to cache only static files

我正在寻找一种实现缓存控制的方法&将标头过期到我的images/css/js文件。我寻找教程&只找到了使用文件扩展名添加缓存控制的方法。下面的代码来自http://betterexplained.com/

<FilesMatch "'.(jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

这将上述扩展的所有图像设置为缓存一周。然而,我不希望所有的图像都被缓存,因为有些图像是由用户上传的。我只想我的静态图像,例如:标志,用于按钮的图标被缓存。如果有人能指出如何实现这一目标的方法或教程,那就太好了。

或者您可以再次将htaccess文件移动到将被缓存的文件夹中,并将用户图像保存在另一个文件夹中:D

您可以更改FilesMatch筛选器以包含路径的一部分。我假设用户映像在另一个目录中,而不是静态映像。

<FilesMatch "^/staticdir/.+'.(jpg|jpeg|png|gif)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>

您可以通过只包含用于缓存的已知图像来使正则表达式更具约束性:

<FilesMatch "(logo|icon|favicon|header)'.(ico|jpe?g|png|gif)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>