Apache FilesMatch:如何仅匹配附加时间戳的资产

Posted

技术标签:

【中文标题】Apache FilesMatch:如何仅匹配附加时间戳的资产【英文标题】:Apache FilesMatch : How to only match assets with a timestamp appended 【发布时间】:2011-09-26 02:18:26 【问题描述】:

我刚刚写并回答了一个关于 apache FilesMatch 识别为文件名的问题;有关更多信息,请参阅Here,但问题是 apache 无法识别文件扩展名之后的任何内容,其中包括(附加的 Rails)时间戳,作为文件名的一部分。

这很糟糕,因为我们有资产,出于某种原因,没有为缓存清除目的加上时间戳,所以像这样的一揽子匹配:

<FilesMatch "\.(ico|jpe?g|png|gif|js|css)$">
    ExpiresActive On
    ExpiresDefault "now plus 1 year"
</FilesMatch>

将匹配符合缓存清除条件和不符合条件的资产。对于那些不是,好吧,这可能很糟糕。

那么,谁能告诉我如何匹配只有在文件名后面有 \?\d10 的资产?

【问题讨论】:

【参考方案1】:

我发现了一个不理想的 hack,但考虑到限制,它会起作用。查看这两个网站的解决方案:

http://www.stephensykes.com/blog_perm.html?157 http://bibwild.wordpress.com/2010/09/22/browser-caching-of-rails-assets-for-real/

【讨论】:

rails 3.1 资产管道也将通过更好地命名文件来解决这个问题。

以上是关于Apache FilesMatch:如何仅匹配附加时间戳的资产的主要内容,如果未能解决你的问题,请参考以下文章

apache配置防盗链访问控制directory访问控制FilesMatch

仅允许缓存来自特定网址的图片

Apache最新解析漏洞:CVE-2017-15715复现

缓存图像Apache服务器

apache中的gzip文件

php和Apache配置好了为啥打开php文件时总出现下载