使用php调整大小和缓存图像,并使用mod_rewrite访问缓存的图像

时间:2011-08-25 16:45:00

标签: php mod-rewrite image-processing kohana

我想调整网址大小的图像,如下所示: http://www.domain.nl/images/chached/200x200/name.jpg 如果图像不存在,我想生成并缓存它。

如何检查文件是否存在,不必在/ images / chached /目录中生成文件夹“200x200”而不使用PHP(较慢)。

有没有办法用mod_rewrite(更快)做到这一点?或者这是不可能的?

我正在使用Kohana 3女巫使用这个mod_rewite代码:

# Turn on URL rewriting
RewriteEngine On
# Installation directory
# RewriteBase /kohana/
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
    Order Deny,Allow
Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

1 个答案:

答案 0 :(得分:1)

使用Kohana的路由设置新路由/images/cached/<size>/<name>(或类似路径)并让它由您选择的操作处理。然后,在该操作的代码中,从这些参数生成图像,将结果保存在该路径下,并将图像提供给客户端。

所以第一个请求(文件不存在)直接转到index.php(因为RewriteRule .* index.php/$0 [PT]),第二个和后面的每个请求都将由Apache直接提供(因为现在RewriteCond %{REQUEST_FILENAME} !-f没有不再匹配了。