Запрос перенаправления заголовка 404

В стандартном приложении LAMP я отправляю людей на мою страницу 404, используя правило .htaccess, например:

ErrorDocument 404 http://www.mydomain.com/404.php

Мы обслуживаем динамические изображения, используя файл php, который считывает файлы из файловой системы, хотя я только что заметил, что когда изображение удаляется из приложения, мы не подняв это, так что запрос на http://www.mydomain.com/image_4.jg (например), который вызывает изображение.php с использованием mod_rewrite не перенаправляет пользователя на страницу 404, поскольку файл динамического изображения будет существовать всегда. В этом случае я знаю, что должен использовать 404, но не уверен, где именно.

Очевидно, я знаю, что мне нужно вручную вставить перенаправление заголовка на страницу 404.php, когда изображение было удалено, но должен ли я действительно отправлять заголовок 404 с этим перенаправлением ?. Глядя на код, наша страница 404.php фактически отправляет заголовок 404 уже с («HTTP / 1.1 404 не найден»); , что наша команда SEO проинструктировала несколько лет назад, не уверен, что это правильно или нет ?. Мне это кажется нелогичным, поскольку это почти означает, что сама страница 404 не была найдена.

Думаю, это 2 вопроса:

  • Должен ли я отправлять заголовок 404 при перенаправлении, если изображение не найдено?
  • Должна ли моя страница 404 действительно отправлять заголовок 404?

РЕДАКТИРОВАТЬ

На самом деле, похоже, невозможно отправить 404 и перенаправить одновременно, например, это приводит к тому, что Chrome показывает «Упс! Эта ссылка не работает». message

header( "Location: /404.php", true, 404 );

Если вы разбиваете заголовки таким образом, это также не работает должным образом

header("HTTP/1.1 404 Not Found");
header("Location: /404.php" );

В этом случае, если вы посмотрите на заголовки, он отправит 302, за которым следует 404. Достаточно ли в этом случае, может быть, просто отправить заголовок без редиректа? может просто отправить 410, как рекомендуют некоторые?

5
задан James A Mohler 30 November 2012 в 02:20
поделиться