试图应用mod重写规则,例如css / style.123456.css - > CSS / style.min.css

时间:2014-12-30 23:53:44

标签: apache .htaccess mod-rewrite

我正在尝试为任何具有给定时间戳的js / css文件创建重写规则,以指向真实文件但不确定如何执行此操作。以下是我的尝试,但是当我尝试这个时,它似乎弄乱了我的

AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(js|css)\/(.+)\.(\d+)\.(js|css)$ $1/$2.min.$4
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>

顺便说一句,我的文件夹结构如下:

/public/
/public/index.php
/public/.htaccess (rules are written in this file)
/public/css/style.min.css
/public/js/all.min.js

此外,apache vhost conf文件会将请求定向到/ public /目录。这我可以验证工作。但是当我尝试查看/css/style.12235543543.css(我想指向/css/style.min.css)时,它只是通过前端控制器(index.php)而不是样式表。

1 个答案:

答案 0 :(得分:2)

使用:

AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    RewriteRule ^(js|css)/(.+)\.(\d+)\.(js|css)$ $1/$2.min.$4 [L]
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>