这就是我想要的......
RewriteEngine On
RewriteCond $1 ^(.*)/__ver([0-9]+)__/(.*)$
RewriteRule ^(.*)$ /$1 [L]
我最终要做的是版本化我的文件结构而不实际更改物理目录结构。我也试图设置一些有助于防止某些浏览器缓存的东西。无论哪种方式,我都试图通过codeigniter从URL中删除index.php,但失败了。
我希望能够在我的html中提供src=""
中的uri
http://example.com/__ver333__/js/script.js
http://example.com/__ver333__/script.js
http://example.com/__ver333__/js/dir/script.js
or
__ver333__/js/script.js
__ver333__/script.js
__ver333__/js/dir/script.js
但就服务器行为或担心而言,我希望它删除 ver333 并相应地提取文件。所以它等同于http://example.com/js/script.js
或/js/script.js
答案 0 :(得分:0)
RewriteCond $1 ^(.*)/__ver([0-9]+)__/(.*)$
没有任何意义。 $1
是该行第一个参数中正则表达式中的第一个捕获组。由于这是第一个参数,因此您当前正在将文件路径与字符$1
进行匹配。这显然永远不会匹配。
您可以使用常规重写轻松完成所需的操作:
RewriteRule ^(.*)/__ver[0-9]+__/(.*)$ /$1/$2
确保您启用RewriteEngine
并设置RewriteBase /
。