Apache重写到其他目录,如果文件存在那里

时间:2012-06-29 12:52:29

标签: apache mod-rewrite rewrite exists

我的目录如下所示:

/assets
  /images
    /2011
    /2012
  /images-hq
    /2011
    /2012

在html文件中,每张图片都有一个标记:

<img src="/assets/images/2012/example.jpg" />

我想检查一下,如果images-hq文件夹中存在相同的图像,如果它在那里,我想将该图像发送给用户。

示例:

/assets/images/2012/example.jpg to /assets/images-hq/2012/example.jpg

IF /assets/images-hq/2012/example.jpg存在,如果不存在,只需提供原始文件。

1 个答案:

答案 0 :(得分:4)

我尝试过这样做,似乎有效:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} (.*)/[a-z]+/(.+)\.(gif|jpe?g|png)$
RewriteCond %1/images-hq/%2.%3 -f
RewriteRule (.*)/[a-z]+/(.+)\.(png|jpg|jpeg)$ %1/images-hq/%2.%3 [L]

我基于this solution