我正在计算版本号或哈希值并链接到file.js
,而不是生成file--bbe02f946d.js
的链接。我正在使用以下重定向规则来提供当前版本的文件:
RewriteRule ^(.*)--[a-z0-9]+\.js$ $1.js
现在,我想为这些请求设置极远的Expires标头:
ExpiresActive on
ExpiresByType application/javascript "access plus 1 year"
这很好用,但也适用于尚未版本化的资源(/file.js
请求)。如何仅为匹配RewriteRule的请求设置expires头?通常情况下,我会使用<LocationMatch>
,但这不可用,因为应用程序必须能够在我可以修改htaccess的任意服务器上运行。
答案 0 :(得分:0)
您可以使用htaccess添加新的mime类型并设置自定义过期标头。
使用.xjs的示例
<IfModule mod_mime.c>
AddType application/x-javascript .xjs
</IfModule>
<IfModule mod_gzip.c>
mod_gzip_item_include file \.xjs$
</IfModule>
<FilesMatch ".(xjs)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
或只使用FilesMatch
中的正则表达式来匹配您的js文件
<FilesMatch "--[a-z0-9]+\.js$">
Header set Cache-Control "max-age=43200"
</FilesMatch>