Подтвердить что ты не робот

Замените неверный URL-адрес изображения на 404

Я не знаю, возможно ли это или нет, у меня есть хост изображения, который я сделал сам. Мне нужны последние настройки.

Всякий раз, когда изображение было удалено или это неверный URL-адрес изображения, он должен заменить изображение 404, так, например, если кто-то добавит это:

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

Но это неверная ссылка, поэтому мне нужно ее показать:

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

Что это такое:

alt text http://tinypic.com/images/404.gif

Я знаю, что .htaccess может сделать это с ним ErrorDocument 404, но у меня есть один, когда пользователь обращается к недопустимой странице, поэтому он будет показывать страницу 404.

Поэтому всякий раз, когда пользователь ссылается на изображение, и он недействителен или удаляется, мне нужно, чтобы он был заменен 404 изображением.

Как я могу это сделать?

4b9b3361

Ответ 1

Здесь один потенциальный ответ:

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" для script (perl, PHP, что угодно). Если запрошенный файл имеет расширение изображения (или имеет image/* mimetype; PHP предоставляет mime_content_type [us2.php.net] функция для этого; Я уверен, что есть многие способы сделать это в perl; Модуль MIME:: Типы [search.cpan.org] является одним из способов), затем установите Заголовок Content-Type для типа mimetype вашего логотипа и вернуть содержание логотипа браузер.

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

Ответ 2

<FilesMatch ".(jpg|png|gif)$">
ErrorDocument 404 "/path/to/image.jpg"
</FilesMatch>

Ответ 3

С Apache вы можете несколько файлов .htaccess. Итак, если все ваши изображения хранятся в одном каталоге, создайте файл .htaccess внутри этого каталога и добавьте

ErrorDocument 404 /img/notfound.jpg

Это создаст настраиваемое перенаправление 404, которое будет применяться только к вашему каталогу изображений, а также к его подкаталогам.

Ответ 4

Вы можете использовать ErrorDocument с директивой FilesMatch

<filesMatch "\.(jpg|png|gif)$">
ErrorDocument 404 /image.jpg 
</filesMatch>

Это покажет /image.jpg, если 404-образный uri с расширением jpg png или gif просил.

вы также можете добавить свой собственный образ или html-разметку в файл errordocument:

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

Ответ 5

В соответствии с ответом AdamH вы должны вывести 404 header. Вот что я использую,

.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);
?>