根据文件的存在,通过.htaccess重定向图像请求

时间:2014-11-15 19:01:31

标签: php .htaccess file-exists

我实施了一个图像生成器,将最终文件保存在 / images 内的。 jpg 格式中。保存文件后,无需再次生成

这是图像生成器的路径:

/gen.php?id=495abc

这是保存所有。 jpg 图像的目录:

/images/495abc.jpg

因此,目标是:如果用户尝试请求http://website.com/images/495abc.jpg,则.htaccess规则必须验证文件是否存在,然后根据具体情况执行以下两种操作之一:

  1. 如果。 jpg 存在,请直接提供该文件。

  2. 如果。 jpg 存在,请将请求重定向到/gen.php?id=495abc 的生成器(将显示新图片)在此过程结束时使用Header("Content-Type: image/jpeg")

  3. 通过 .htaccess 可行吗?如果没有,还有另一种方法:将所有/images/*.jpg次请求重定向到/gen.php?id=*,让 gen.php 执行所有脏工作。当然,第一种选择更好。

    有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:4)

是。可以使用htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^images/(\d+)\.(jpe?g|png|gif|ico|bmp)$ /gen.php?id=$1 [L,NC]