如果mod_rewrite不存在图像文件,如何运行脚本

时间:2012-05-15 04:51:37

标签: image apache caching mod-rewrite

我正在抨击键盘试图弄清楚这一个。我正在运行一个图像密集的站点,我在显示图像之前预先处理图像(重新调整大小/标记/保存)。

这是我的问题,如何使用mod_rewrite检查目录(/cache/photos/600x500/xxx.jpg或/cache/photos/200x400/xxx.jpg)中是否已存在已处理的图像,如果不存在怎么办我将该请求重新映射到图像处理脚本,该脚本将从原始图像创建图像并将其显示给用户。

感谢您的帮助。我一直试图找到一个类似的问题,但这令我难以置信:)

2 个答案:

答案 0 :(得分:1)

#First check if the request is for a JPG:
RewriteCond %{REQUEST_URI} (.*).jpg$

#If so, see if it exists in /cache/photos/600x500/xxx.jpg
RewriteCond %{DOCUMENT_ROOT}/cache/photos/600x500/%1.jpg -f [NC]

#If so, serve that:
RewriteRule .* cache/photos/600x500/%1.jpg [L]

# Similar set of rules for other cache:
RewriteCond %{REQUEST_URI} (.*).jpg$
RewriteCond %{DOCUMENT_ROOT}/cache/photos/200x400/%1.jpg -f [NC]
RewriteRule .* cache/photos/200x400/%1.jpg [L]

# Final rewrite for jpg files:
RewriteCond %{REQUEST_URI} (.*).jpg$
RewriteRule (.*) createimage.php?image=$1 [L]

答案 1 :(得分:0)

你需要类似的东西

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^(expression$)   /path/to/script?file=$1 [L]

您的脚本需要生成文件并打印/提供图像