regex - .htaccess 重写规则以防止缓存 css、js、图像文件。

标签 regex apache .htaccess caching mod-rewrite

我试过 ?ver=478459有助于防止浏览器缓存某些文件(如 CSS、图像、JavaScript)的内容。而且自从我开始意识到它的唯一帮助。似乎不是每次都有效。例如,有时我必须使用 VPN 才能工作,并且无论出于何种原因,即使在更改文件末尾的参数时,如上述文件也会保留在缓存中,直到我清除它。我想参数可能由于某种原因没有坚持,因为我正在通过代理运行。但是,情况似乎也不总是如此。

无论如何。我想弄清楚,如果有一种方法可以通过 htaccess 为我的 js、css、img 文件提供 rewrite_rule,如果提供的 URL 是我不知道的让我们说

/scripts/jquery/__ver<version number>__/filename.js
/scripts/__ver<version number>__/filename2.js
/scripts/3.0.x/__ver<version number>__/filename2.js
/styles/jquery-ui/__ver<version number>__/filename.css
/styles/__ver<version number>__/filename2.css
/img/__ver<version number>__/something.png
/img/dir/dir/dir/__ver<version number>__/something-else.png

基本上是重写规则寻找这个 __ver<version number>__ 的地方具体和<version number>是 3 点版本控制逻辑或某种 md5.. 或基本上寻找 _ver*_ 的任何一种方式

当找到它时,重写规则将删除它并使用没有该部​​分的路径

最佳答案

您可以在 .htaccess 中为选定的文件扩展名明确禁用缓存:

<FilesMatch "\.(png|jpe?g|gif|js|css)$">
   FileETag None
   <ifModule mod_headers.c>
     Header unset ETag
     Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
     Header set Pragma "no-cache"
     Header set Expires "Tue, 14 Jan 1975 01:00:00 GMT"
   </ifModule>
</FilesMatch>

关于regex - .htaccess 重写规则以防止缓存 css、js、图像文件。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724917/

相关文章:

java - 使用正则表达式提取子字符串不起作用

php - PDO Sphinx连接用户权限(SELINUX问题)

.htaccess 301 将目录中的所有页面重定向到其他域,无需查询字符串

php - shell 脚本劫持了我的 .htaccess 文件

c# - C#字符串中所有字母字符的反大小写

javascript - 使用正则表达式查找 Javascript 中两个字符串之间的差异

正则表达式——替换特定字符之前的所有空格

python - 如何在 Apache 下运行的应用程序中保持动态应用程序级统计信息?

apache - 在 ec2 上获得 root 访问权限

php - 如何将我的网址更改为用户友好的网址