我想调整网址大小的图像,如下所示: 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]
答案 0 :(得分:1)
使用Kohana的路由设置新路由/images/cached/<size>/<name>
(或类似路径)并让它由您选择的操作处理。然后,在该操作的代码中,从这些参数生成图像,将结果保存在该路径下,并将图像提供给客户端。
所以第一个请求(文件不存在)直接转到index.php(因为RewriteRule .* index.php/$0 [PT]
),第二个和后面的每个请求都将由Apache直接提供(因为现在RewriteCond %{REQUEST_FILENAME} !-f
没有不再匹配了。