RegEx删除部分文件名

时间:2014-11-30 18:36:54

标签: regex .htaccess

为了帮助控制我们网站上的缓存,我正在寻找一些资源文件(css& js),并在其网址中添加版本号(例如.site.v104.css),以便我们推送更新在我们想要的时候通过用户,但是每次我想设置.htaccess规则时都要减少维护和重命名实际文件,该规则将自动从浏览器重写这些URL并从其实际位置显示内容。

如果文件位于css文件夹中并以.vNNN.css结尾,那么我想从.vNNN中提取内容,例如,如果网站的HTML中的文件是:“site_media / css / site .v104.css“然后我希望它从”site_media / css / site.css“加载内容,以下规则适用于此。

在我的.htaccess文件中,我添加了以下行:

RewriteRule ^(site_media/css/.*).v\d+(\.css)        /$1$2           [U,L]

但是,如果我有一个多个'。'的文件。 (例如“site_media / css / site.prod.v104.css”)然后它不起作用它返回“site_media / css / site.css”而不是“site_media / css / site.prod.css”。

我可以在不检查文件是否在正确的文件夹中的情况下生活,但我想要安全并准确控制它取代的文件。

1 个答案:

答案 0 :(得分:1)

修复 - 发现前瞻的错误导致它无法正常工作(我的问题的一半是我正在使用的正则表达式测试程序)。上面的代码确实有效。