Как сделать 404 ошибку в CMS Bitrix

Если Вы владелец сайта на CMS Bitrix, то Вас наверняка должны волновать дубли страницы на сайте из-за плохо работающей стандартной 404 ошибки. Самое обидное в этой ситуации то, что исправить подобные баги движка можно только самостоятельно.

Примером неправильной работы может быть то, что движок отдает верные ответы на такие URL:

http://site/catalog/jgshdhjkf/20/
http://site/catalog/lkfdhgk;lad/
и т.д.

Хотя должен на такие запросы выдавать 404 страницу. Теперь перейдем к решению этой проблемы. Для этого Вам понадобится доступ по ftp к файлам Вашего сайта.

1. Открываем файл: bitrix/components/bitrix/catalog.element/component.php, после строки:

$rsElement->SetSectionContext($arSection);

Дописываем:

if(!is_array($rsElement->arSectionContext)) {
ShowError(GetMessage("CATALOG_ELEMENT_NOT_FOUND"));
@define("ERROR_404", "Y");
if($arParams["SET_STATUS_404"]==="Y")
CHTTP::SetStatus("404 Not Found");
return;
}





2. Заходим в bitrix/modules/main/include/epilog.php. Добавляем в начало файла сразу после начала действия <?php:

define("PATH_TO_404", "/404.php");
AddEventHandler("main", "OnEpilog", "Redirect404");
function Redirect404() {
if(!defined('ADMIN_SECTION') && defined("ERROR_404")
&& defined("PATH_TO_404") &&
file_exists($_SERVER["DOCUMENT_ROOT"].PATH_TO_404)) {
global $APPLICATION;
$APPLICATION->RestartBuffer();
CHTTP::SetStatus("404 Not Found");
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/header.php");
include($_SERVER["DOCUMENT_ROOT"].PATH_TO_404);
include($_SERVER["DOCUMENT_ROOT"].SITE_TEMPLATE_PATH."/footer.php");
}
}

Теперь 404 ошибка будет обрабатываться верно. Не забудьте создать файл 404.php в корне вашего сайта.

Если Вы не сделаете Выше описанные действия, то Ваши конкуренты могут Вам легко “насолить”, поскольку у них будет сильное оружие: бесконечные дубли на Вашем сайте. После этого очистите кэш вашего сайта и с помощью bertal.ru проверьте коды ответов сайта на различные неверные запросы.




Читайте также:

• Как сделать страницу 404 ошибки

• Как сделать редирект

• 301 редирект для удаления/добавления слэша в конце URL

• 301 редирект с index (.html и .php) на корень сайта “/”

• Редирект 301 с http на https

• Редирект 301 с www на без www

• Сервисы для продвижения сайтов

← Перейти в каталог CMS

Читайте также:

Copy Protected by Chetan's WP-Copyprotect.