Как принудительно показать 404-ю ошибку

Как принудительно показать 404-ю ошибку

867
16.01.2018
07.08.2018

Очень часто сео-специалисты ставят задачу как можно сильнее упростить адрес до карточки товара и до карточки раздела и как результат мы получаем шаблон адреса вида: /раздел/  и /товар/. В таком случае типовой компонент catalog при включенном режиме отдачи 404-й ошибки, будет выдавать ошибку. Чтобы этого избежать, нужно вносить правки в логику отображения.

Для начала отключаем режим показа 404-й страницы в настройках компонента каталога.

Далее, открываем файл section.php каталога и тут настраиваем свой код определения того, какую страницу показывать - страницу товара или страницу раздела - проверяем по базе данных, если есть товар с заданным символьным кодом - показываем карточку товара. Если  товара нет, но есть раздел с таким символьным кодом - показываем его. Если же ни товара, ни раздела с заданным символьным кодом нет - нужно показать 404-ю страницу. Для этого можно воспользоваться следующим кодом:

if (!defined("ERROR_404"))
	define("ERROR_404", "Y");

\CHTTP::setStatus("404 Not Found");

if ($APPLICATION->RestartWorkarea())
{
	require(\Bitrix\Main\Application::getDocumentRoot() . "/404.php");
	die();
}

В результате пользователю будет показана 404-я страница. Адрес при этом не изменится.



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку