htaccess - 条件重写和到期

Fra*_*cke 5 apache .htaccess url-rewriting cache-control mod-expires

嘿!

/static我的Apache 2.x服务器webroot中有一个文件夹.如果请求匹配

/static/<somename like [\S-_]+>.(png|jpg|css|js)/\d{8,15}
Run Code Online (Sandbox Code Playgroud)

例如

/static/bg.jpg/1335455634
Run Code Online (Sandbox Code Playgroud)

我想要两件事:

  • url应改写为/static/bg.jpg(摆脱时间戳)
  • 它将成为一个永不过期('到期2030年,最大年龄= 290304000,公共缓存,...)

如果请求不匹配,请求及其标题应该正常,不重写.理想情况下,/ static/*之外的任何请求都不应受到影响(尽管«巧合的尾随时间段»应该很少......)

我对FilesMatch/RewriteCond只有麻烦,所以我宁愿不发布我的不良尝试...(在我的机器上启用了genereal中的重写,我确实拥有发送缓存相关头文件的权限)

Dankeschön!

jes*_*sal 2

像这样的事情怎么样?

RewriteEngine on
RewriteRule ^static/([^/]+\.(png|jpg|css|js))x?/\d{8,15}$ /static/$1 [NC,L]

<FilesMatch "\.(png|jpg|css|js)$">
    <IfModule mod_expires.c>
        ExpiresActive On
    </IfModule>
    <IfModule mod_headers.c>
        ExpiresDefault "access plus 10 years"
    </IfModule>
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)