1

我希望客户端能够使用任意版本号访问某些文件以绕过缓存。

例如,假设有两个文件:styles.css 和 jquery.min.js 他们应该能够请求原始文件或 styles.23.css 和 jquery.min.5039.css。

我想出的规则是:

RewriteEngine On
RewriteRule ^(.*)\.(?!\..*)[\d]+\.(.*)$ $1.$2 # strip out version number
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

分解,这是我对它应该做什么的想法:

^(.*) – starting from the beginning, match all
\. – up to the first period...
(?!\..*) - ...which is not followed by a period and anything,
[\d]+\. – then match if ends in one or more digits followed by a period...
(.*)$ – ...and anything

这个 RegEx 实际工作似乎在 PHP 中工作,但不是 .htaccess,这让我有点困惑。

先感谢您。

4

1 回答 1

1

为什么需要前瞻等。以下应该有效:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)\.\d+\.(.*)$ $1.$2 [L]
于 2013-09-17T07:05:51.057 回答