用404图像替换无效的图像网址

Mac*_*Mac 22 .htaccess http-status-code-404

我不知道这是否可能,我有一个我自己制作的图像主机.我需要对它进行一些最后的调整.

每当图像被删除或是无效的图像网址时,它应该替换为404图像,例如,如果有人添加了这个:

http://imagehosturl.com/i/34njk5n.jpg

但这是一个无效的链接,所以我需要它来显示:

http://imagehosturl.com/img/notfound.jpg

这是这样的:

替代文字http://tinypic.com/images/404.gif

我知道.htaccess可以用它来做到这一点ErrorDocument 404,但是当用户访问无效页面时我已经有了一个,所以它会显示404页面.

因此,每当用户热链接图像并且图像无效或被删除时,我都需要将其替换为404图像.

我该怎么做?

Ada*_*amH 42

这是一个可能的答案:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpe?g|png|bmp) /path/to/logo.gif [NC,L]
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用自定义脚本页面:

使用errorDocument指令(在[httpd.apache.org]中记录)将'404'错误指向脚本(perl,PHP,无论如何).如果请求的文件有一个图像扩展名(或者有一个图像/*mimetype; PHP为此提供了mime_content_type [us2.php.net]函数;我确信在perl中有很多方法可以做到这一点; MIME ::类型[search.cpan.org]模块是单向的),然后将"Content-Type"标头设置为徽标图像的mimetype,并将logoimage的内容返回给浏览器.

http://www.webmasterworld.com/forum92/3458.htm


dit*_*tto 19

<FilesMatch ".(jpg|png|gif)$">
ErrorDocument 404 "/path/to/image.jpg"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)


Gar*_*yde 16

使用Apache,您可以拥有多个.htaccess文件.因此,如果所有图像都存储在同一目录中,请在该目录中创建一个.htaccess文件并添加

ErrorDocument 404 /img/notfound.jpg
Run Code Online (Sandbox Code Playgroud)

这将创建一个自定义404重定向,该重定向仅应用于您的图像目录及其子目录.


sta*_*een 5

您可以将ErrorDocument与FilesMatch指令一起使用

<filesMatch "\.(jpg|png|gif)$">
ErrorDocument 404 /image.jpg 
</filesMatch>
Run Code Online (Sandbox Code Playgroud)

如果请求带有jpg pnggif扩展名的404图像uri,它将显示/image.jpg

您还可以将您的自定义图像或html标记添加到errordocument中:

<filesMatch "\.(jpg|png|gif)$">
ErrorDocument 404 '<img src="image.jpg">'
</filesMatch>
Run Code Online (Sandbox Code Playgroud)