@strify_25

Исправить title страницы 404 в битриксе?

На странице 404 ошибки показывается неправильный title. Например, на site.ru/abrakadabra/ показывает название сайта, на site.ru/dostavka/abrakadabra/ или site.ru/catalod/abrakadabra/ показывает заголовок родительского раздела (доставка и каталог соответственно). В шаблоне title выводится <?$APPLICATION->ShowTitle()?>. Код 404.php прилагаю. Почему это происходит и как исправить?
<?
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');

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

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

$APPLICATION->SetTitle("Страница не найдена - Ошибка 404");?>
<div class="text-main" style="margin-top: 20px;">
      <p>К сожалению, такой страницы не существует. Возможно, вы перешли по некорректной ссылке. Пожалуйста, воспользуйтесь поиском или меню сайта</p>
<?
$APPLICATION->IncludeComponent("bitrix:main.map", "template2", Array(
   "LEVEL" => "3",   // Максимальный уровень вложенности (0 - без вложенности)
      "COL_NUM" => "2",   // Количество колонок
      "SHOW_DESCRIPTION" => "N",   // Показывать описания
      "SET_TITLE" => "Y",   // Устанавливать заголовок страницы
      "CACHE_TIME" => "36000000",   // Время кеширования (сек.)
      "COMPONENT_TEMPLATE" => ".default",
      "CACHE_TYPE" => "A",   // Тип кеширования
   ),
   false
);?></div>

<?

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
  • Вопрос задан
  • 2411 просмотров
Решения вопроса 1
@eldario
Люблю программировать и настраивать Linux сервера
Покажите шаблон, пожалуйста. Конструкция 404 страницы правильная.
Была такая проблема на одном проекте, программисты или сеошники намудрили что-то.
Я вышел из ситуации, добавив такой универсальный обработчик в init.php

AddEventHandler('main',   'OnEpilog',   '_Check404Error', 1);
function _Check404Error(){
	if(defined('ERROR_404') && ERROR_404=='Y' || CHTTP::GetLastStatus() == "404 Not Found"){
		GLOBAL $APPLICATION;
		$APPLICATION->RestartBuffer();
		$APPLICATION->SetPageProperty("keywords", "Страница не найдена");
		$APPLICATION->SetPageProperty("title", "Страница не найдена");
		$APPLICATION->SetPageProperty("description", "Страница не найдена");
		$APPLICATION->SetPageProperty("ADDITIONAL_TITLE", "Страница не найдена"); // Это кастомная вещь, если тайтл переопреелен, как в моем случае - вам, возможно не нужно.
		$APPLICATION->SetTitle("Страница не найдена");
		require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
		require $_SERVER['DOCUMENT_ROOT'].'/404.php';
		require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
	}
}


Сайт агентства, если кому потребуется помощь edvancemedia.com
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@home_boy
Если кому то не помогут советы выше - на одном из проектов мне помогло в файле /404.php
После require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
Добавить
$APPLICATION->SetTitle("Страница не найдена");
$APPLICATION->SetPageProperty("title", "Страница не найдена");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы