我正在为文件设置缓存控制标头。我想为所有max-age=86400.css设置.js,为所有其他设置max-age=3600

<FilesMatch "\.(css|js)$">
    Header append Cache-Control max-age=86400
</FilesMatch>

<FilesMatch "???">
    Header append Cache-Control max-age=3600
</FilesMatch>


我不知道应该写什么正则表达式来反转\.(css|js)$匹配。也许还有其他方法可以做到这一点?

更新。根据this question答案,我找到了可行的解决方案:

<FilesMatch "(?<!\.css|\.js)$">
    Header append Cache-Control max-age=3600
</FilesMatch>


不幸的是,找不到将点\.放在方括号之外的方法。但是这个解决方案对我来说仍然很好。

附带说明一下,所有其他文件都包含完全没有文件名的文件,例如http://example.com/

最佳答案

根据this question答案,我找到了可行的解决方案:

<FilesMatch "(?<!\.css|\.js)$">
    Header append Cache-Control max-age=3600
</FilesMatch>


不幸的是,找不到将点\.放在方括号之外的方法。但是这个解决方案对我来说仍然很好。

08-25 04:55