直接访问时重新创建已删除的缓存图像

时间:2013-11-21 03:22:38

标签: regex .htaccess mod-rewrite

假设您有一个应用程序在加载页面时自动调整图像大小,然后将它们存储在图像缓存文件夹中,并将尺寸作为后缀,因此下次不必重新创建图像。

那是一个甜蜜的功能。

现在无论出于何种原因,有人将图像热链接起来,他们都像是“男人,这是一个很酷的形象。我会用它。”而你就像“好吧,玩得开心”但是因为你有一个非常轻微的老年痴呆症病例,你清除了你的缓存。

男人,太糟糕了。

所有热门链接都破了!

但是,远方有一个解决方案。如果我们可以以某种方式使用php和mod_rewrite / .htaccess将不存在的/ 404图像路由到将文件名作为参数的脚本,解析尺寸和原始文件名,然后不仅替换和调整丢失的图像,还会用标题回显图像数据,然后就会很好。

我的问题。我在.htaccess中使用的重写规则将路由404看起来的图像请求。

1 个答案:

答案 0 :(得分:1)

尝试类似:

RewriteEngine On

# request isn't a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# request ends with an image extension, so route to php script
RewriteRule ^(.*)\.(jpe?g|gif|bmp|png|ico)$ /image.php?filename=$1.$2 [L]