Если Вы владелец сайта на 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
• Сервисы для продвижения сайтов