.htaccess 用404图像替换无效的图像url
我不知道这是否可能,我有一个自己制作的图像主机。我需要最后的一些调整 每当图像被删除或是无效的图像url时,它都应替换为404图像,例如,如果有人添加以下内容: 但这是一个无效链接,所以我需要它显示: 这是这样的: 我知道.htaccess 用404图像替换无效的图像url,.htaccess,http-status-code-404,.htaccess,Http Status Code 404,我不知道这是否可能,我有一个自己制作的图像主机。我需要最后的一些调整 每当图像被删除或是无效的图像url时,它都应替换为404图像,例如,如果有人添加以下内容: 但这是一个无效链接,所以我需要它显示: 这是这样的: 我知道.htaccess可以通过它的ErrorDocument 404实现这一点,但当用户访问无效页面时,我已经有了一个,所以它会显示404页面 所以,每当用户热链接一个图像,它是无效的或被删除,我需要它被替换为404图像 我怎样才能做到这一点呢?这里有一个可能的答案: Rew
.htaccess
可以通过它的ErrorDocument 404
实现这一点,但当用户访问无效页面时,我已经有了一个,所以它会显示404页面
所以,每当用户热链接一个图像,它是无效的或被删除,我需要它被替换为404图像
我怎样才能做到这一点呢?这里有一个可能的答案:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpe?g|png|bmp) /path/to/logo.gif [NC,L]
另一种方法是使用自定义脚本页面:
使用errorDocument指令
(记录于[httpd.apache.org])至
将“404”错误指向脚本(perl,
PHP,不管怎样)。如果请求的文件
具有图像扩展名(或具有
image/*mimetype;PHP提供
mime内容类型[us2.php.net]
功能;我相信有
在perl中有许多实现这一点的方法
MIME::Types[search.cpan.org]模块
是单向的),然后设置
mimetype的“内容类型”标题
返回您的徽标图像,然后返回
将logoimage的内容添加到
浏览器
使用Apache,您可以拥有。因此,如果所有图像都存储在同一目录中,请在该目录中创建一个.htaccess
文件并添加
ErrorDocument 404 /img/notfound.jpg
这将创建一个自定义404重定向,该重定向仅应用于图像目录及其子目录。
<FilesMatch ".(jpg|png|gif)$">
ErrorDocument 404 "/path/to/image.jpg"
</FilesMatch>
ErrorDocument 404“/path/to/image.jpg”
除了AdamH的答案,您还应该输出404标题
。这是我用的
.htaccess
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(gif|jpe?g|png|bmp) /upload/image404.php [NC,L]
image404.php
<?php
$file = 'image404.jpg';
$type = 'image/jpeg';
header("HTTP/1.0 404 Not Found");
header('Content-Type:'.$type);
header('Content-Length: ' . filesize($file));
readfile($file);
?>
您可以将ErrorDocument与FILEMATCH指令一起使用
<filesMatch "\.(jpg|png|gif)$">
ErrorDocument 404 /image.jpg
</filesMatch>
ErrorDocument 404/image.jpg
如果请求扩展名为jpgpng或gif的404图像uri,则将显示/image.jpg
您还可以将自定义图像或html标记添加到errordocument:
<filesMatch "\.(jpg|png|gif)$">
ErrorDocument 404 '<img src="image.jpg">'
</filesMatch>
错误文档404“
你可以尝试修改你的.htaccess
以抛出一个404页面
查找除图像文件以外的所有缺失文件,这将得到你的404图像
。谢谢。为了防止链接更改或不可用,答案中似乎已经这样做了:“注意:在“!”之前需要有一个空格,并且所有的“?”字符都必须是实心的管道,而不是断开的管道”绝对最好发送到脚本而不是图像,因为以这种方式发送到图像不会发送404
头。如果您将其发送到脚本,脚本可以同时输出404
标题和图像本身,让您两全其美。喜欢“jpe?g”解决方案!:)此解决方案不保留404状态代码。这将起作用,我没有想到这一点。在你之前接受了答案。对不起,伙计,这是个好办法。它很简单,保留了404标题,并且不需要将图像全部放在一个文件夹中。它可以工作!实际上,我不知道您是否应该在404:apache附近放置“”,比如:操作将被视为:*要重定向到的本地URL(如果操作以“/”开头)*要重定向到的外部URL(如果操作是有效URL)。*要显示的文本(如果没有上述内容)。如果文本由多个单词组成,则必须用引号(“)括起来。这是最好的、非常优雅的解决方案!