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

ользую cms, и ошибки, связанные с отсутствием файла, могут быть обработаны различными способами:

Страница не будет перенаправлена, но сообщение об ошибке будет отображаться как контент (используя макет по умолчанию с меню / нижним колонтитулом).Страница будет перенаправлена ​​на error.php (страница выглядит так же, как 1., но адрес изменился)Страница будет перенаправлена ​​на существующую страницу, например, sitemap.php

Есть ли способ, который следует отдавать предпочтение в отношении поисковых систем, или это не имеет значения?

 user21210201 июн. 2011 г., 09:07
Сохраняет ли система журнал истории этого URL и поэтому знает, какой текущий правильный URL? Если так, то просто сделайте внутреннюю переадресацию и представьте текущий контент. В противном случае вы должны выдать ошибку 404 (вот для чего она).

Ответы на вопрос(2)

Решение Вопроса

вы должны выпустить страницу 404. Выполнение перенаправления вызывает код 302, за которым следует «200 OK», подразумевая, что есть некоторый контент. В отчете 404 написано: «Нет файла. Хватит меня беспокоить».

Примерно так можно представить страницу 404 с правильным кодом заголовка:

<?php
if ($page_not_found) {
   header('This is not the page you are looking for', true, 404);
   include('your_404_page.php');
   exit();
}
 mrmowji25 янв. 2018 г., 18:44
Возможно, лучше поставитьheader(...) а такжеexit() в404.php скрипт. Помните, если выinclude твой404.php через функцию ее родительские глобальные переменные не будут доступны в ней.

Забудьте о поисковых системах. Если я наберу URL-адрес и сделаю небольшую опечатку, а вы меня перенаправите, тогда мне придется вводить все заново.

Страница не будет перенаправлена, но сообщение об ошибке будет отображаться как контент (используя макет по умолчанию с меню / нижним колонтитулом).

Попытайтесь прояснить, что это страница с ошибкой. Это не должно выглядетьслишком очень похоже на нормальную страницу.

Страница будет перенаправлена ​​на error.php (страница выглядит так же, как 1., но адрес изменился)

Нет, действительно нет.

Страница будет перенаправлена ​​на существующую страницу, например, sitemap.php

В HTTP есть несколько кодов состояния перенаправления, но ни один из них не «Не найден, но вам может понравиться».

 Ilyssis31 мая 2011 г., 16:36
Неплохо подмечено.
 Lightness Races in Orbit31 мая 2011 г., 16:35
Перенаправления не обязательно включают переписывание URL-адреса в строке адреса. Возьмите подавляющее большинство из 404 страниц в Интернете, например. Действительно, вариант (2) является baaaad.
 Quentin31 мая 2011 г., 16:37
Поскольку вопрос был о взаимодействии между сервером и клиентами, кажется разумным предположить, что речь идет о перенаправлении HTTP. Внутренний редирект, который никоим образом не предоставляется клиенту, не будет иметь значения.

Ваш ответ на вопрос