Можно было сделать редирект.
Но это было бы неправильно, потому что:
- Пользователь, случайно введя ошибочный длинный URL перебрасывался на /404.php без возможности увидеть и исправить ошибку в строке адреса.
- Поисковой робот, зайдя на ошибочную страницу, видел странную последовательность: при обращении к несуществующей странице он получал статус 301 Moved Permanently (в редких случаях "404 Not found" и переадресацию на страницу /404.php, которая выставляла статус "404 Not found".
AddEventHandler("main", "OnEpilog", "Redirect404");
function Redirect404() {
if(
!defined('ADMIN_SECTION') &&
defined("ERROR_404") &&
file_exists($_SERVER["DOCUMENT_ROOT"]."/404.php")
) {
global $APPLICATION;
$APPLICATION->RestartBuffer();
CHTTP::SetStatus("404 Not Found");
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
include($_SERVER["DOCUMENT_ROOT"]."/404.php");
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
}
}
Комментариев нет:
Отправить комментарий