.htaccess重写规则,以防止缓存css,js,图像文件.

chr*_*ris 2 regex apache .htaccess mod-rewrite caching

我试过这些?ver=478459东西来帮助阻止浏览器缓存CSS,Images,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
Run Code Online (Sandbox Code Playgroud)

基本上重写规则正在寻找这一点,__ver<version number>__并且<version number>是一个3点版本控制逻辑或某种类型的md5 ..或者任何一种基本上寻找的方式_ver*_

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

anu*_*ava 6

您可以在.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>
Run Code Online (Sandbox Code Playgroud)