July 5, 2012

Битрикс. Делаем страницу 404 правильно.

Всем привет!

Сегодня будет короткий пост о том как стандартными средствами CMS Битрикс сделать обработку 404-ошибки на сервере и выводить собственную страничку с ошибкой в заголовках которой будет ответ 404, а не 200 OK. В противном случае поисковые системы могут посчитать эти страницы за существующие и добавить в индекс много дублей одной странички.

Итак, приступаем.

1) Открываем .htaccess в корне сайта и прописываем редирект на 404 ошибку:

ErrorDocument 404 /404.php
Если в качестве веб-сервера используется Nginx достаточно прописать в конфиге в секции location вот такой код:
error_page 404 = /404.php;

2) Создаем страничку 404.php и прописываем перед основным содержанием вот такой код:

<?php
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');

$sapi_type = php_sapi_name();
if ($sapi_type=="cgi") {
    header("Status: 404");
} else {
    header("HTTP/1.1 404 Not Found");
}

@define("ERROR_404","Y");

//Тут уже подключение верней части шаблона и присваивание заголовка
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");

$APPLICATION->SetTitle("404 - HTTP not found");

//Код страницы

Кстати лучше всего будет выводить на этой страничке содержимое карты сайта - bitrix:main.map

3) ???

4) PROFIT!!!

Ну вот собственно и все! Удачи в разработке =)