0

这就是我正在尝试的..

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

4

1 回答 1

0

RewriteCond $1 ^(.*)/__ver([0-9]+)__/(.*)$并不意味着什么。$1是该行第一个参数中正则表达式中的第一个捕获组。由于这是第一个参数,因此您当前正在将文件路径与字符匹配$1。这显然永远不会匹配。

您可以通过常规重写轻松完成您想要的操作:

RewriteRule ^(.*)/__ver[0-9]+__/(.*)$ /$1/$2

确保启用RewriteEngine和设置RewriteBase /

于 2013-09-11T06:01:00.803 回答