带有破折号的文件名的正则表达式重写规则

时间:2016-05-21 19:06:14

标签: .htaccess mod-rewrite url-rewriting

我有一个像jquery.form.min.3.51.0-2014.06.20.js这样的文件名,想要更改以下我的重写规则,以删除点,短划线和数字。

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
</IfModule>

重写规则会对scripts.min.4.4.2.js等文件名执行作业,并转发给scripts.min.js。但是对于顶部的文件名,数字之间的短划线,规则不会起作用。

我的正则表达式知识对于这种情况来说太有限了。请问有人给我一个暗示吗?

2 个答案:

答案 0 :(得分:1)

您可以使用:

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)\.[\d-]+\.(js|css|png|jpg|gif)$ $1.$2 [L]
</IfModule>

答案 1 :(得分:1)

尝试以下方法:

RewriteRule ^(\D+)[\d.-]+(js|css|png|jpg|gif)$ $1$2 [L]