我正在为文件设置缓存控制标头.我想设置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>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我应该写什么正则表达式来反转\.(css|js)$匹配.或者也许有其他方法可以做到这一点?
更新.根据这个问题的答案,我找到了有效的解决方案:
<FilesMatch "(?<!\.css|\.js)$">
Header append Cache-Control max-age=3600
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
不幸的是找不到将点留\.在括号外的方法.但这个解决方案仍然适合我.
作为旁注,所有其他文件包括完全没有文件名的文件,例如http://example.com/.
根据这个问题的答案,我找到了可行的解决方案:
<FilesMatch "(?<!\.css|\.js)$">
Header append Cache-Control max-age=3600
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
不幸的是,找不到将点留\.在方括号之外的方法。但是这个解决方案对我来说仍然很好。