使用.htaccess 为相同扩展名的文件设置不同的缓存控制

Set different cache controls for files of the same extension using .htaccess

我不熟悉使用 .htaccess 文件。我有图像文件; a.jpeg & 同一文件夹中的其他几个 .jpeg 文件。我希望客户端做的是缓存 a.jpeg 但不是其余的 .jpeg 文件。

这是我的 .htaccess 文件的样子:

#exception
<Files a.jpeg>
Header set Cache-Control "max-age=604800, public"
</Files>

# NEVER CACHE - rest of .jpegs
<FilesMatch "\.(jpg|jpeg)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

问题是 a.jpeg 没有像所有其他 .jpeg 一样被缓存。请帮忙。

我用来测试缓存和非缓存文件的网站是这样的:https://www.giftofspeed.com/cache-checker/

我才知道 <FilesMatch ""> 需要正则表达式来搜索文件,因此正则表达式:FilesMatch 标签内的 "\b^(?!a)\w*\.jpg\b" 有效。

这是完整的 .htaccess 文件:

# NEVER CACHE - rest of .jpegs
<FilesMatch "\b^(?!a.jpg)\w*\.jpg\b">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>