Страница 404 битрикс. Пример настройки и оформления 404 на битрикс.

Страница 404 битрикс. Пример настройки и оформления 404 на битрикс.

blog-image1

Страница 404 ошибки имеет важную роль как для пользователей, так и для поисковых систем.

Опишу список вопросов, которые будут обозначены в этой статье:

  1. Страница 404 битрикс. Как настроить?
  2. Пример оформления 404 на битрикс.
  3. Вопрос о том, что 404 страница отдает код 200.
  4. Подводные камни при настройке 404 страницы.

Итак пойдем по порядку!

Страница 404 битрикс. Как настроить?

Обычно, в битрикс страница 404 настраивается в пару кликов, красивый внешний вид достигается копированием заготовки html кода для 404 страницы. Пойдем по порядку и тут.

Рассмотри настройку статуса 404 на примере комплексного компонента каталога. Для выполнения задачи нужно вызвать настройки компонента, в самом низу настроек будет блок с настройками 404 ошибки, в нем необходимые параметры:

  • Устанавливать статус 404
  • Показ специальной страницы
Битрикс страница 404

Эти параметры должны быть установлены по умолчанию при разработке или seo оптимизации сайтов на битриксе.

После установки этих параметров, необходимо сохранить настройки компонента, и проверить результат в разных вариациях (добавление к существующему url дополнительных букв, цифр в разных местах). Если все удачно и отдается страница со статусом 404, необходимо её оформить.

В битрикс страница 404 размещается в корне сайта в файле 404.php.

Пример оформления 404 на битрикс:

	CHTTP::SetStatus("404 Not Found");
	@define("ERROR_404","Y");

	require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

	$APPLICATION->SetTitle("Страница не найдена");
	?>
	

ShowTitle(false);?>

Ошибка 404
Страница не найдена
Неправильно набран адрес или такой
страницы не существует
Перейти на главную

С кодом выше и с базовыми настройками 404, я думаю все понятно, продолжим.

Вопрос о том, что 404 страница отдает код 200.

Если 404 страница отдает код 200, идем в настройки главного модуля и проверяем наличие галочки у пункта "Посылать в заголовке статус 200 на 404 ошибку". Он должен быть отключен!

404 страница отдает код 200

После этого страница должна отдавать статус 404.

Подводные камни при настройке 404 страницы в битрикс:

Бывает, что 404 страницу необходимо настроить на каком-нибудь готовом решении. Тут необходимо рассматривать каждый конкретный случай индивидуально. Возможно поможет вставка в init.php кода:

	AddEventHandler("main", "OnEpilog", "error404Page");
	function error404Page()
	{
		if(defined('ERROR_404') && ERROR_404 == 'Y')
		{
			global $APPLICATION;
			$APPLICATION->RestartBuffer();
			include $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
			include $_SERVER['DOCUMENT_ROOT'].'/404.php';
			include $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
		}
	}

Возможно поможет этот код, нужно пробовать и прокачивать:

	define("PREFIX_PATH_404", "/404.php");
	AddEventHandler("main", "OnAfterEpilog", "error404Page");
	function error404Page() {
		global $APPLICATION;

		if (!defined('ERROR_404') || ERROR_404 != 'Y') {
			return;
		}

		if ($APPLICATION->GetCurPage() != PREFIX_PATH_404) {
			header('X-Accel-Redirect: '.PREFIX_PATH_404);
			exit();
		}
	}

Если нечего не помогло, поздравляю вас! Необходимо лезть внутрь компонента, с помощью которого сделан ваш каталог, или статейный раздел и искать там место, где вставить обработку 404 ошибки. Это наверняка будет компонент который будет лежать в своем пространстве имен. Больше сказать ничего не могу, только прокачивать!

P.S.: Любую задачу можно выполнить, важно уделить её достаточно времени.

На этом все, теперь в bitrix 404 страница настроена и должна работать корректно, если возникнут вопросы или пожелания, рассмотреть реализацию какой-либо задачи - пишите в комментарии, разберем её выполнение в ближайшее время! Всем удачи и успехов в работе!