S
S
strify_252016-02-20 16:47:26
PHP
strify_25, 2016-02-20 16:47:26

Fix 404 page title in Bitrix?

The 404 error page shows the wrong title. For example, on site.ru/abrakadabra/ it shows the site name, on site.ru/dostavka/abrakadabra/ or site.ru/catalod/abrakadabra/ it shows the title of the parent section (delivery and catalog, respectively). The title template displays <?$APPLICATION->ShowTitle()?>. The 404.php code is attached. Why is this happening and how to fix it?

<?
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");?>

Answer the question

In order to leave comments, you need to log in

3 answer(s)
E
Eldar, 2016-02-21
@strify_25

Show me the template, please. The design of the 404 page is correct.
There was such a problem on one project, programmers or SEOs made up something.
I got out of the situation by adding such a generic handler to 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';
  }
}

Agency website if anyone needs help edvancemedia.com

H
home_boy, 2018-10-21
@home_boy

If the advice above does not help someone - on one of the projects it helped me in the file /404.php
After require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
Add
$APPLICATION->SetTitle("Page not found");
$APPLICATION->SetPageProperty("title", "Page not found");

D
Dmitry, 2016-02-20
@mytmid

Try swapping:

$APPLICATION->SetTitle("Страница не найдена - Ошибка 404");
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question