使用自定义大小替换404图像的无效图像网址

时间:2013-08-22 21:34:55

标签: image .htaccess http-status-code-404

如果请求的图片不存在,我想返回默认(404)图像。我设置了命名约定,以便我可以拉出相同图像的不同大小(由我的应用程序预先生成)。

foo-200.png
foo-50.png
foo-10.png
etc..

短划线( - )后面的数字是所请求图像的大小。同样,一旦我上传图像,系统将自动生成不同的尺寸。

但是,如果请求的图像不存在(例如bar-200.png),我想返回一张与所请求的图像大小相同的404图像。

bar-200.png     (404)->    notfound-200.png
bar-50.png      (404)->    notfound-50.png
bar-10.png      (404)->    notfound-10.png
etc...

以下是我目前在htaccess中所拥有的内容:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpe?g|png|bmp) notfound.png [NC,L]

但无论请求的大小如何,这只会返回一个404大小的图像。

任何帮助?

1 个答案:

答案 0 :(得分:1)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?!^notfound-)^[^-]+-([0-9]+)\.(?:gif|jpe?g|png|bmp)$ notfound-$1.png [L,NC,NE]