Ошибка загрузки сервер ответил 404 not found bitrix загрузка резервной копии

 

Пользователь 1454287

Заглянувший

Сообщений: 3
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 02.10.2017

Добрый день!

Хочу сделать резервную копию — вылетает ошибка 404
«К сожалению, запрошенная страница на сервере не найдена.»

Что это может быть и как лечить?

 

Пользователь 105835

Эксперт

Сообщений: 761
Баллов: 122
Авторитет:

3

Рейтинг пользователя:

0

Регистрация: 28.10.2011

#2

0

03.10.2017 00:17:03

Цитата
Антон написал:
Добрый день!

Хочу сделать резервную копию — вылетает ошибка 404
«К сожалению, запрошенная страница на сервере не найдена.»

Что это может быть и как лечить?

Ошибка вылетает при открытии данной страницы /bitrix/admin/dump_list.php?lang=ru или при нажатии на кнопку «Создать»?

Битрикс и Битрикс 24 РАБОТА ВАКАНСИИ — https://t.me/bitrixworkrabota

 

Пользователь 1454287

Заглянувший

Сообщений: 3
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 02.10.2017

#3

0

03.10.2017 10:54:53

Цитата
Олег Колчугин написал:

Цитата
Антон  написал:
Добрый день!

Хочу сделать резервную копию — вылетает ошибка 404
«К сожалению, запрошенная страница на сервере не найдена.»

Что это может быть и как лечить?

Ошибка вылетает при открытии данной страницы /bitrix/admin/dump_list.php?lang=ru или при нажатии на кнопку «Создать»?

Вылетает при  нажатии «создать» — в адресной строке — /bitrix/admin/dump_list.php?lang=ru  

 

Пользователь 105835

Эксперт

Сообщений: 761
Баллов: 122
Авторитет:

3

Рейтинг пользователя:

0

Регистрация: 28.10.2011

Проверка сайта и доступ к файлам и папкам /bitrix/admin/site_checker.php?lang=ru что показывает? Места на хостинге достаточно?
У вас при клике на «Создать» до этого момента есть возможно зайти в настройки резервного копирования и выбрать интервал и шаг?
Есть вероятность что файл инфицирован, попробуйте подкинуть вместо /bitrix/admin/dump_list.php  с тестового битрикс новый чистый оригинал или посмотреть содержимое данного файла на предмет левого кода…. На вирусы желательно проверить весь сайт полностью. (Для полного анализа можно использовать специальное ПО, например AI-Bolit:

https://www.revisium.com/ai

)

 

Пользователь 5007626

Заглянувший

Сообщений: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 09.02.2021

#5

0

15.09.2022 09:50:50

Добрый

Цитата
написал:
Добрый день!

Хочу сделать резервную копию — вылетает ошибка 404
«К сожалению, запрошенная страница на сервере не найдена.»

Что это может быть и как лечить?

Добрый день. Подскажите, как решали проблему? Раньше все работало ок, сейчас тоже 404.. файл dump_list.php
<?phprequire_once($_SERVER[«DOCUMENT_ROOT»].»/bitrix/modules/main/admin/dump_list.php»);
?>
в старом бекапе он такой же.. поэтому, думаю, дело не в нем

 

Пользователь 5007626

Заглянувший

Сообщений: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 09.02.2021

#6

0

16.09.2022 09:29:36

Если что, решил проблему, скачав со старой виртуалки сам файл dump.php

<?php
require_once($_SERVER[«DOCUMENT_ROOT»].»/bitrix/modules/main/admin/dump.php»);
?>

хоть и в бекапе его не было



  • 1С-Битрикс


  • Агентство Romapad


    Агентство Romapad



  • 8 января 2015

404 битрикс - правильная настройка

В битриксе 404 ошибка отрабатывается весьма специфически: неправильный адрес со статических страниц и разделов корректно перебрасывает на страницу 404.php, при этом, сохраняя неправильный URL в адресной строке браузера. То есть, все по SEO.

А вот если неправильный адрес начинается с раздела инфоблока или каталога, то сервер отдаст браузеру 404 статус страницы (и то, при определенных настройках инфоблока, о которых ниже), но 404 страницу не покажет, а покажет корневую страницу инфоблока, причем, иногда совсем другого инфоблока. Но, все-таки, сохранит неправильный URL в адресной строке.

В интернете данный вопрос поднимался не раз. Когда-то популярным решением была настройка в битрикс принудительного редиректа на 404 страницу.))) Перечитав изрядно статей, выполнив несколько найденных инструкций, желаемого результата добиться не удалось(((. Пришлось, вооружившись командой print backtrace, отловить негодяйскую 404 ошибку и заставить ее работать, как положено.

Ставим задачу:

  1. Нужно, чтобы инфоблоки и каталоги в случае неправильной ссылки отдавали 404 статус.
  2. Нужно, чтобы этот статус правильно обрабатывался и приводил к вызову страницы 404.php.

На что стоит обратить внимание?

  1. Файл 404.php лежит в корне сайта. Должен выглядеть вот так (тут все стандартно):
    <? if ($_SERVER['DOCUMENT_URI'] == "/404.php") {
     $_SERVER['REQUEST_URI'] = $_SERVER['DOCUMENT_URI'];
    }
    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("Страница не найдена"); ?>  
    ТУТ ТЕКСТ ВСЯКИЙ
    <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>
  2. В .htaccess должна быть вот такая строчка:
    ErrorDocument 404 /404.php

    Если у вас сервер на nginx, то нужно прописать в конфиге, в секции location, следующее:

    error_page 404 = /404.php;

    Тех. отступление:

    Попробуем симулировать 404 ошибку с какой-нибудь статической страницы и отловить результат через команду debug_print_backtrace();

    Skrinshot-2015-01-01-14.35.46

    Смотрим файл, видим там строку с инклюдом 404 страницы. Она вызывается, очевидно, в том случае, если страница не найдена в структуре файлов и папок, а также в файле urlrewrite.php в корне сайта, где как раз описаны все наши инфоблоки и каталоги (для правильной работы ЧПУ).

    Первая поставленная нами задача выполняется настройкой инфоблоков и компонентов.

  3. Проверим настройки самих каталогов:

    Скриншот 2015-01-01 14.56.00

    URL страницы ИБ — должен указывать на папку, из которой будет осуществляться вызов инфоблока.

    URL страницы раздела — если структура инфоблока будет иметь подразделы, то ссылка должна строиться на основе символьного кода раздела.

    URL страницы детального просмотра — если элемент находится в подразделе, то к ссылке будет прибавляться символьный код раздела перед символьным кодом элемента. Иначе — только символьный код элемента.

  4. И инфоблоков:

    Скриншот 2015-01-01 15.48.25

    То есть, как мы видим, для инфоблоков подразделы можно не описывать.

  5. Проверяем настройки вызова инфоблоков:

    Скриншот 2015-01-01 15.22.18

    Обязательно проверяем, что отмечена галка «Включить поддержку ЧПУ»!

    Каталог ЧПУ — корневая папка инфоблока.

    Раздел — #SECTION_CODE#/ — повторяем из настроек инфоблока, но не ставим слеш в начале, иначе компонент будет работать неверно.

    Детальная информация — #SECTION_CODE#/#ELEMENT_CODE#/ —  ссылка формируется на основе символьного кода раздела (если есть) и кода элемента. Опять же, слеш в начале не ставим!

    Если предполагается, что все элементы будут располагаться в корне инфоблока, без подразделов, то можно использовать следующие настройки:

    Скриншот 2015-01-01 15.49.27

    То есть, поле для страницы раздела вообще можем пропустить, для страницы элемента: #ELEMENT_CODE#/ . Не забываем пропустить слеш в начале!

  6. Отмечаем галочку там же в настройках: «Устанавливать статус 404, если не найдены элемент или раздел:».

    Тех. отступление:

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

    Скриншот 2015-01-01 15.26.32

    Этим мы и воспользуемся, а чтобы данный статус правильно обрабатывался

  7. Добавим следующий код в файл /bitrix/php_interface/init.php:
    <?
    AddEventHandler('main', 'OnEpilog', '_Check404Error', 1);
    function _Check404Error(){
     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';
     }
    }
    ?>

С этого момента страница ошибок будет работать! (наверное))) Если нет, опишите вашу ситуацию в комментариях.

UPD от 29.08.15: чуть обновил код файла 404.php  и сниппет для init.php.

UPD от 15.01.18: настраивал сегодня на одном проекте отладку 404-й ошибки по данной инструкции. Все работает отлично)) Версия битрикса — последняя на указанную дату.





  • 1с битрикс

Агентство Romapad

Работаем с 2009 года. Реализовано более 400 проектов. Слаженная команда профессионалов. Создание и администрирование сайтов. Техническая поддержка. Помощь новичкам.

Подпишитесь на рассылку новостей


21.10.2019


Комментариев нет


13.10.2018


Комментариев нет


12.02.2018


Комментариев нет


21.01.2018


Комментариев нет

Комментарии к публикациям

“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo”

John DoeAccountant, Colibri

“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo”

Max PowellCEO, Falcon

“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo”

Alex PaloOwner, Eagle


04.09.2012


Комментариев нет

Этим постом начинаю цикл, посвященный раскрутке сайтов. И сегодня мы поговорим о том, как

Продолжить чтение


19.09.2012


60 комментариев

Если вы любите Wordpress и вам нужно создать интернет-магазин, то, наверняка, вы в первую очередь

Продолжить чтение


26.09.2012


Комментариев нет

Гаджеты на блоггере — это небольшие готовые модули, которые позволяют быстро подключить к вашему

Продолжить чтение

Всем привет!

После отката сайта началась проблема в каталоге. Подскажите кто-нибудь.

Ошибка 404 Not Found:

The requested URL
/catalog/micromachines/19/ was not
found on this server.

Такой папки «19» не существует, так как это ID раздела сайта. Подскажите, как исправить?

Обновление

Я сделала откат файл htaccess не переименовывался.
Хотя я уже столько «телодвижений» сделала с этим каталогом. . .файл неоднократно менялся
Содержимое такое:

# Web Optimizer options 
<ifmodule mod_setenvif.c="">    
BrowserMatch ^Mozilla/4 gzip-only-text/html     
BrowserMatch ^Mozilla/4.0[678] no-gzip     
BrowserMatch SV1; !no_gzip  
BrowserMatch bMSIE !no-gzip !gzip-only-text/html 
</ifmodule>
Options +FollowSymLinks 
<ifmodule mod_mime.c="">    
AddEncoding gzip .gz    
AddEncoding deflate .df     
<filesmatch .html.(gz|df)$="">    ForceType text/html     </filesmatch>   
<filesmatch .xml.gz$="">  ForceType text/xml  </filesmatch>   
<filesmatch .txt.gz$="">  ForceType text/plain    </filesmatch>   
<filesmatch .ico.gz$="">  ForceType image/x-icon  </filesmatch>   
<filesmatch .css.gz$="">      ForceType text/css  </filesmatch>   
<filesmatch .js.gz$="">       ForceType application/x-javascript  </filesmatch>   
<filesmatch .svg.gz$="">      ForceType image/svg+xml     </filesmatch>   
<filesmatch .ttf.gz$="">      ForceType font/ttf  </filesmatch>   
<filesmatch .otf.gz$="">      ForceType font/otf  </filesmatch>   
<filesmatch .eot.gz$="">      ForceType application/vnd.ms-fontobject     </filesmatch> 
<filesmatch .(rtf|rtx).gz$="">        ForceType text/richtext     </filesmatch>   
<filesmatch .xsd.gz$="">      ForceType text/xsd  </filesmatch>   
<filesmatch .xsl.gz$="">      ForceType text/xsl  </filesmatch>   
AddType text/css css    
AddType application/x-javascript js     
AddType text/html html htm  
AddType text/richtext rtf rtx   
AddType text/plain txt  
AddType text/xsd xsd    
AddType text/xsl xsl    
AddType text/xml xml    
AddType text/cache-manifest manifest    
AddType video/asf asf asx wax wmv wmx   
AddType video/avi avi   
AddType video/ogg ogg ogv   
AddType video/mp4 mp4 m4v   
AddType video/webm webm     
AddType video/divx divx     
AddType video/quicktime mov qt  
AddType video/mpeg mpeg mpg mpe     
AddType audio/midi mid midi     
AddType audio/mpeg mp3 m4a  
AddType audio/ogg ogg   
AddType audio/x-realaudio ra ram    
AddType audio/wav wav   
AddType audio/wma wma   
AddType image/svg+xml svg svgz  
AddType image/bmp bmp 
AddType image/gif gif   
AddType image/x-icon ico    
AddType image/jpeg jpg jpeg jpe     
AddType image/png png   
AddType image/tiff tif tiff     
AddType font/ttf ttf    
AddType font/otf otf    
AddType font/x-woff woff    
AddType application/vnd.ms-fontobject eot   
AddType application/msword doc docx     
AddType application/x-msdownload exe    
AddType application/vnd.ms-access mdb   
AddType application/vnd.ms-project mpp  
AddType application/vnd.ms-powerpoint pot pps ppt pptx  
AddType application/vnd.ms-write wri    
AddType application/vnd.ms-excel xla xls xlsx xlt xlw   
AddType application/vnd.oasis.opendocument.database odb     
AddType application/vnd.oasis.opendocument.chart odc    
AddType application/vnd.oasis.opendocument.formula odf  
AddType application/vnd.oasis.opendocument.graphics odg     
AddType application/vnd.oasis.opendocument.presentation odp     
AddType application/vnd.oasis.opendocument.spreadsheet ods  
AddType application/vnd.oasis.opendocument.text odt     
AddType application/java class  
AddType application/x-gzip gzip     
AddType application/pdf pdf     
AddType application/x-shockwave-flash swf   
AddType application/x-tar tar 
AddType application/zip zip 
</ifmodule> 
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule> 
# Web Optimizer end Options -Indexes
 ErrorDocument 404 /404.php php_value upload_max_filesize 32M 
#php_flag session.use_trans_sid off #php_value display_errors 1
 #php_flag allow_call_time_pass_reference 1 
<ifmodule mod_mime.c="">    AddType application/x-httpd-php .ico </ifmodule>
 <ifmodule mod_dir.c="">    DirectoryIndex index.php index.html </ifmodule>
 <ifmodule mod_expires.c="">    ExpiresActive on    ExpiresByType image/jpeg &quot;access plus 3 day&quot;  ExpiresByType image/gif &quot;access plus 3 day&quot; </ifmodule>
 # Web Optimizer end

Что еще можно сделать?

Abyx's user avatar

Abyx

30.8k12 золотых знаков95 серебряных знаков154 бронзовых знака

задан 11 ноя 2014 в 9:12

Phiolent's user avatar

Зайдите на страницу /catalog/, нажмите на панели «Изменить страницу», чтобы она открылась в визуальном редакторе, после чего нажмите кнопку «Сохранить». В общих случаях это должно помочь, т.к. это действие создаст правило для ЧПУ. Но лучше сначала сделайте копию файла /catalog/index.php, т.к. визуальный редактор битрикса не всегда ведет себя адекватно, особенно если на этой странице заложен какой-то нестандартный код.

ответ дан 11 ноя 2014 в 12:09

baduga's user avatar

badugabaduga

5131 золотой знак4 серебряных знака13 бронзовых знаков

/bitrix/admin/urlrewrite_list.php?lang=ru
http://take.ms/XxEdK

Если восстанавливали, то /.htaccess.restore переименуйте, заменив /.htaccess.

Nicolas Chabanovsky's user avatar

ответ дан 11 ноя 2014 в 12:43

kotdg's user avatar

kotdgkotdg

4025 серебряных знаков17 бронзовых знаков

1

Создаем файл /404.php, проверяем директивы .htaccess, выполняем настройку главного модуля и компонентов.

Введение

Страница 404-й ошибки должна загружаться в том случае, если
человек попытался открыть несуществующую страницу. Увидев сообщение «Страница
не найдена» пользователь поймет, что ошибся при вводе адреса, либо перешел по
нерабочей ссылке.

Но по нерабочей ссылке может перейти не только человек, но и
робот поисковой системы. Поэтому, кроме текстового сообщения об ошибке, страница
должна отдавать HTTP-код
404 – так поисковики понимают, что они попытались попасть на несуществующую
страницу. Разберемся, как создать страницу 404-й ошибки на сайте, который
работает  на системе управления
1С-Битрикс.

Создаем страницу /404.php

Для начала создаем в корне сайта файл 404.php со следующим кодом:

<?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->SetPageProperty("not_show_nav_chain", "Y");
$APPLICATION->SetTitle("Ошибка 404");
?>
<p>Страница не найдена. Она либо была удалена, либо вообще никогда не существовала. Возможно Вы ошиблись при вводе адреса, воспользуйтесь главным меню.</p>
<?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

Если в корне сайта этот файл уже существует, проверяем, чтобы в самом начале были эти три строчки, они важны, если их нет – добавляем:

<?php include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');
CHTTP::SetStatus("404 Not Found");
@define("ERROR_404","Y");?>

Если интересно разобраться — отдельно рассмотрим каждую строчку нашего файла:

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

— подключаем систему обработки адресов Битрикса, чтобы корректно обрабатывать адреса динамических разделов (статей, новостей, каталогов).

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

— устанавливаем HTTP-статус  404, благодаря этим строчкам поисковики поймут, что запрашиваемой страницы не существует.

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

— подключаем шапку сайта.

$APPLICATION->SetPageProperty("not_show_nav_chain", "Y");

— отключаем отображение цепочки навигации (хлебных крошек) на этой странице.

$APPLICATION->SetTitle("Ошибка 404");

— устанавливаем h1 и title страницы.

<p>Страница не найдена. Она либо была удалена, либо вообще никогда не существовала. Возможно Вы ошиблись при вводе адреса, воспользуйтесь главным меню.</p>

— контент страницы, его можете отредактировать на своё усмотрение.

<?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>

— подключаем подвал сайта.

Окей, страничку создали, идем дальше.

Проверяем наличие директивы в .htaccess

Открываем файл .htaccess в корне сайта, проверяем, что там есть такая строчка:

ErrorDocument 404 /404.php

Эта строчка есть в .htaccess сайтов на Битриксе по-умолчанию, но всё-равно лучше проверить. Если ее нет – добавляем. Этим мы указываем, что созданный нами файл /404.php должен загружаться при попытке открыть несуществующую страницу.

Проверяем настройки главного модуля

В админке идем в настройки Главного модуля (Настройки => Настройки продукта => Настройки модулей => Главный модуль) и проверяем, чтобы опция Посылать в заголовке статус 200 на 404 ошибку была отключена:

Опция Посылать в заголовке статус 200 на 404 ошибку

По названию опции понятно: если галочка стоит – страница с 404-й ошибкой будет возвращать статус 200, а это нам ни к чему. Поэтому если галочка стоит – убираем её.

Настраиваем компоненты

В настройках всех компонентов, которые отвечают за страницы
детального просмотра, нужно настроить режим обработки 404-й ошибки. Например,
это могут быть компоненты «Новости», «Каталог», «Новость детально», «Элемент
каталога детально» — одним словом все компоненты, которые генерируют страницы
детального просмотра.

Тут без конкретного примера не обойтись, поэтому рассмотрим следующую
ситуацию: на сайте есть раздел «Новости», страница детального просмотра
новостей генерируется компонентом «Новость детально». Урлы новостей выглядят
следующим образом /news/simvolnyj-kod-novosti/

Если мы перейдем в настройки данного компонента — в самом
низу увидим блок Настройки 404 ошибки.
По-умолчанию он выглядит вот так:

Настройки компонента по-умолчанию

Т.е. обработка 404-й ошибки не настроена. Если мы попытаемся открыть страницу с несуществующей новостью, например /news/asdfgffj4/ — получим вот такое стандартное сообщение:

Страница с ошибкой, но не 404

Сама страничка отдает HTTP-код 200. Так быть не должно, срочно исправляем! В настройках компонента отмечаем галочки Устанавливать статус 404 и Показ специальной страницы, поле Страница для показа не заполняем, т.к. по умолчанию это страница /404.php – т.е. то, что нам нужно. Блок настроек компонента теперь выглядит следующим образом:

Вносим изменения в настройки компонента

Теперь при попытке открыть несуществующую новость получаем нашу страницу 404:

Нормальная страница 404-й ошибки

Проверяем результат работы

Мы всё настроили, остается проверить, отдает ли наш сайт код
404 для несуществующих страниц. Для таких целей можно использовать сервис
яндекса https://webmaster.yandex.ru/tools/server-response/

Указываем ему любую несуществующую страницу нашего сайта и
получаем ответ:

Проверяем результат работы

Если Код статуса HTTP равен 404 Not Found — поздравляю, вы всё сделали правильно.

Теперь вы знаете, как настроить страницу-обработчик 404-й ошибки в Битриксе :)

Не работает 404 ошибка на Битриксе.
site.ru/fgsdfgsdg — отдает 200 и белую страницу.
При этом в других ситуациях на сайте ошибка работает хорошо:
site.ru/catalog/sfgsdgfsg — отдает и код 404 и красивую страницу ошибки (что исключает то, что 404 не работает и не настроена в принципе)

Что уже проверялось:
1. В htaccess есть строка ErrorDocument 404 /404.php
2. 404.php есть и в ней есть

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

3. В файл bitrixphp_interfaceinit.php добавлялся — не помогло:

AddEventHandler('main', 'OnEpilog', '_Check404Error', 1);  
function _Check404Error(){
   if(defined('ERROR_404') && ERROR_404=='Y' || CHTTP::GetLastStatus() == "404 Not Found"){
      GLOBAL $APPLICATION;
      $APPLICATION->RestartBuffer();
      require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
      require $_SERVER['DOCUMENT_ROOT'].'/404.php';
      require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
   }
}

Этот вариант был предложен здесь в аналогичном старом вопросе.
Заранее спасибо.

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

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

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

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

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

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

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

2019-02-28. Решение, используемое в ядре системных компонентов:

BitrixIblockComponentTools::process404(
       'Не найден', //Сообщение
       true, // Нужно ли определять 404-ю константу
       true, // Устанавливать ли статус
       true, // Показывать ли 404-ю страницу
       false // Ссылка на отличную от стандартной 404-ю
);
<?
	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("Страница не найдена");
	$APPLICATION->SetPageProperty("keywords", "Страница не найдена");
	$APPLICATION->SetPageProperty("description", "Страница не найдена");
	?>

<div class="container-error-page">
        <div class="error-page-big-text">
            404
        </div>
        <div class="col col-12 ta-center">
                <?$APPLICATION->IncludeComponent(
					"bitrix:search.form",
					"bottom",
					array(
						"COMPONENT_TEMPLATE" => "bottom",
						"PAGE" => SITE_DIR."search/index.php"
					),
					false
				);?>
            </div>

            <p>
                <a href="/">Главная страница</a>
            </p>
            <p>
                <a href="search/map.php">Карта сайта</a>
            </p>
 </div>

<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>

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

CHTTP::SetStatus(‘404 Not Found’);

@define(«ERROR_404″,»Y»);

Первая строка выдает заголовок, вторая объявляет константу ERROR_404.

1.png

Далее, файл .htaccess отдает страницу, отвечающую за отображение ошибки 404.

Бывает так, что битрикс ошибку 404 выдал, но открывается обычная страница каталога, например, с ошибкой «элемент не найден», или «раздел не найден». При этом в заголовках сервера ошибка есть. Для этого есть директива ErrorDocument сервера apache.

Строка ErrorDocument 404 /404.php файла .htaccess означает, что при возникновении в битрикс ошибки 404 сервер вернет страницу /404.php

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

Насколько важно отображение этой страницы? Решать вам. Если вы обратитесь в любую контору по поисковой оптимизации сайта, скорее всего в списке требований будет значится пункт о приведении страницы 404 к нормальному виду, размещении на ней карты сайта. По умолчанию, эта страница в битриксе существует, все директивы для её отображения прописаны.

Также отметим, что правильно настроенный сайт должен отдавать ошибку 404 по всем несуществующим адресам.

Пример распространенной ошибки: есть каталог со структурой

/catalog/имя_раздела/имя_элемента.html

Достаточно частое явление, когда пути

/catalog/раздел_не_существует_blablabla/имя_элемента.html и /catalog/имя_раздела/имя_элемента.html выдают один и тот же результат. Одна из страниц считается поисковиками как дубль, и результат понижается в выдаче. Для того, чтобы этого избежать, в настройках компонента есть галочка «использовать строгое определение пути».

В таком случае при открытии ссылки ссылки с несуществующим разделом Битрикс выдаст ошибку 404.

К сожалению, подобных примеров достаточно много, для большого сайта бывает сложно все предусмотреть.

Правильная настройка в Битрикс ошибки 404 является важной частью поискового продвижения вашего сайта. Обратитесь к нам, и наши специалисты проверят сайт и настроят его на правильное отображение этой ошибки.

Недавно пришлось переносить сайт на новый сервер, работающий на VMBitrix. VMBitrix это виртуальная машина, предварительно с установленными программным обеспечением, выполняющий роль веб-сервера для платформы Bitrix. Процедура переноса описана в документации Bitrix, мне бы хотелось отметить один момент, который, скорее всего, возникал у многих, кто делал перенос сайта на виртуальную машину.
При переносе сайта, некоторые части сайта не открываются, возникает ошибка:

Not Found 
The requested URL *some url* was not found on this server.

Как правило, ошибка возникает в компонентах вывода каталога, новостей и т.д., там, где используются возможности модуля mod_rewrite веб-сервера Apache.
Первым делом я переименовал файл .htaccess.restore в .htaccess который находился в корне сайта. Дело в том, что при переносе сайта, файл .htaccess который находиться в бэкапе переименовывается в .htaccess.restore, вместо него генерируется новый файл .htaccess. Судя по всему это сделано для того, чтобы избежать ошибок связанных с этим файлом. Если вдруг вы делали какие-либо изменения в файле, корректные для предыдущего сервера, то при переносе может возникнуть неполадки на новом сервере, но не факт.
У меня была проблема в другом. Причина была в том, что файл .htaccess не считывался вовсе. Стало понятно, что надо настраивать это дело в конфигах Apache. В файле конфигурации есть опция AllowOverride, значение которой нужно изменить вместо «None» установить «All».
Открываем файл конфигурации Apache в редакторе vi, в VMBitrix он находится по адресу /etc/httpd/conf/httpd.conf

# vi /etc/httpd/conf/httpd.conf

Находим строку с записью AllowOverride None, меняем на значение AllowOverride All.

<Directory />
        Options FollowSymLinks
        AllowOverride All
</Directory>

Мы сделали следующее:
AllowOverride All – здесь сказано что если существует файл .htaccess, то все (All) директивы прописанные в нем будут выполняться.
После изменения файла конфигурации следует перезапустить сервер Apache:

# service httpd restart

После этого директивы в файле .htaccess должны работать.

2021.08.27

Если у вас настроен вывод товаров из вложенных разделов каталога в разделах верхнего уровня или непосредственно в корне каталога и при переходе в карточку товара у вас возникает ошибка 404, то зайдите в параметры компонента каталога, найдите и активируйте чек-бокс «Использовать основной раздел для показа элемента«

Наши решения

IntecUniverse — интернет-магазин с конструктором дизайна

39 900 руб.

Интернет-магазин на редакции Старт с конструктором дизайна — IntecUniverse LITE

34 900 руб.

INTEC.Food — магазин доставки еды, суши, пиццы с корзиной и оплатой. Сайт для ресторанов и кафе

34 900 руб.

INTEC.Garderob — интернет-магазин одежды, обуви, сумок, нижнего белья и аксессуаров

34 900 руб.

INTEC. SEO — модуль поисковой оптимизации: seo — фильтр, генерация сео — текстов, H1, мета-тегов

14 900 руб.

INTEC Конструктор сайтов — визуальный редактор структуры и дизайна

9 900 руб.

INTEC: Мультирегиональность — региональная сеть вашего сайта с продвижением в поисковиках

14 900 руб.

Проблема — компоненты при возникновении 404й ошибки не отдают 404.php.

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

Начнем по порядку.

404 & Bitrix:catalog.

Первичная настройка.

Для начала пройдемся по настройкам ИБ и компонента.

Настройки инфоблока

Настройки инфоблока

  • «URL страницы информационного блока» — тут вроде все понятно, просто указываем каталог из которого происходит вызов компонента для этого ИБ.
  • «URL страницы раздела» — тут нужно быть аккуратным, если все элементы ИБ лежат в корне раздела, то мы не можем использовать.
  • «#SECTION_CODE#» — при такой настройке роутер компонента будет путать разделы и элементы ИБ. Чтобы этого не происходило мы используем «#SECTION_CODE_PATH#».
  • «URL страницы детального просмотра» — т.к. мы кладем все элементы в корень, то здесь используется только «#ELEMENT_CODE#».

На этом с настройками ИБ закончили.

Настройки компонента

Настройки компонента

  • «Каталог ЧПУ» — соответственно раздел в котором происходит вызов компонента
  • «Раздел» — повторяем настройку из ИБ, но перед «#» не ставим слеш «/», в противном случаи компонент будет работать не верно!
  • «Детальная информация» — повторяем настройку из ИБ, но перед «#» не ставим слеш «/», в противном случаи компонент будет работать не верно!
  • И не забудем про «волшебную галочку».
  • Настройки компонента

С настройками компонента закончили.

Элемент не найден

Теперь о грустном — 404й статус мы вроде как получаем, но компонент не спешит перебрасывать нас на 404.php, а просто пишет что раздел или элемент не найден.

А нам то нужно отобразить 404ю, чтобы юзер понял что что-то пошло не так, показать ему доп менюшку и т.д.

Решение проблемы.

Для решения этой проблемы мы воспользуемся механизмом событий 1С-БУС.

//событие "ловушка" для 404й
AddEventHandler('main', 'OnEpilog', '_Check404Error', 1);
function _Check404Error(){
   if(defined('ERROR_404') && ERROR_404=='Y' || CHTTP::GetLastStatus() == "404 Not Found"){
      GLOBAL $APPLICATION;
      $APPLICATION->RestartBuffer();
      require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
      require $_SERVER['DOCUMENT_ROOT'].'/404.php';
      require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
   }
}

В эпилоге мы запускаем проверку на установку константы «ERROR_404» и ее текущее значение, а также проверяем последний выставленный статус, это позволяет выловить всевозможные проявления 404й ошибки у 1С-БУС. Далее мы рестартуем HTML буфер подготовленный системой для вывода. Подключаем хедер текущего шаблона, подгружаем тело 404й страницы, а затем подключаем футер текущего шаблона.
Данный подход позволяет сохранить текущий URL, шаблон и навигацию, поэтому пользователь легко сможет перейти обратно в рабочий раздел, а также в контентной области отображаем тело 404й страницы, это дает понять что запрошенной страницы действительно нет.

Ошибка 404

404 & Bitrix:news.

К сожалению компонент Bitrix:news пока не умеет адекватно отдавать хотя бы голый 404й статус, мы в поиске решения.

Форум

 

После переноса резервной копии с локального сервера на хостинг всегда возникает ошибка 404  Not Found если создавать или редактировать раздел или страницу.
Впервые ошибка возникла, когда нужно было поменять заголовок и свойства гдавной страницы. Но она решилась путём смены прав доступа через панель хостинга с 0644 на 0755.
Дальше при создании или редактировании разделов или страниц — ошибка появляется снова и уже смена прав не помогает.

Что делать? В чём может быть причина?
И ещё одно заметила, когда файли/папки создаются не через панель управления битрикса, то всё окей, только вручную нужно прописовать правила в urlrewrite.php

Писала в техподдержку — молчат…

 

Каким образом восстанавливали резервную копию? через restore.php?

 

Пользователь 123925

Заглянувший

Сообщений: 29
Баллов: 1
Регистрация: 30.03.2012

#3

0

26.11.2013 17:06:43

Цитата
Проверьте права доступа к файлу.
Цитата
Необходимый уровень прав на сервере — http://dev.1c-bitrix.ru/learning/course/?COURSE_ID=8&LESSON_ID=317

Техподдержка ответила.

у меня в файликt dbconn.php   было:

define(«BX_FILE_PERMISSIONS», 0664);
define(«BX_DIR_PERMISSIONS», 0775);

я переправила на
define(«BX_FILE_PERMISSIONS», 0644);
define(«BX_DIR_PERMISSIONS», 0755);

и заработало. Спасибо.

 

У меня такая же проблема. Только мне не помогло. Изначально было define(«BX_FILE_PERMISSIONS», 0600);
define(«BX_DIR_PERMISSIONS», 0700);  

 

Пользователь 123925

Заглянувший

Сообщений: 29
Баллов: 1
Регистрация: 30.03.2012

#5

0

04.12.2013 16:42:07

Цитата
Алексей Чумак пишет:
У меня такая же проблема. Только мне не помогло. Изначально было define(«BX_FILE_PERMISSIONS», 0600);
define(«BX_DIR_PERMISSIONS», 0700);

Я так понемаю, что Вы переносили сайт с битриксом не через через restore.php. Думаю через это может бить проблемы. Я тоже так пробовала и на папку bitrix у мене не было достаточно прав доступа. Или обращайтесь в техподдержку.

Всем привет!

После отката сайта началась проблема в каталоге. Подскажите кто-нибудь.

Ошибка 404 Not Found:

The requested URL
/catalog/micromachines/19/ was not
found on this server.

Такой папки «19» не существует, так как это ID раздела сайта. Подскажите, как исправить?

Обновление

Я сделала откат файл htaccess не переименовывался.
Хотя я уже столько «телодвижений» сделала с этим каталогом. . .файл неоднократно менялся
Содержимое такое:

# Web Optimizer options 
<ifmodule mod_setenvif.c="">    
BrowserMatch ^Mozilla/4 gzip-only-text/html     
BrowserMatch ^Mozilla/4.0[678] no-gzip     
BrowserMatch SV1; !no_gzip  
BrowserMatch bMSIE !no-gzip !gzip-only-text/html 
</ifmodule>
Options +FollowSymLinks 
<ifmodule mod_mime.c="">    
AddEncoding gzip .gz    
AddEncoding deflate .df     
<filesmatch .html.(gz|df)$="">    ForceType text/html     </filesmatch>   
<filesmatch .xml.gz$="">  ForceType text/xml  </filesmatch>   
<filesmatch .txt.gz$="">  ForceType text/plain    </filesmatch>   
<filesmatch .ico.gz$="">  ForceType image/x-icon  </filesmatch>   
<filesmatch .css.gz$="">      ForceType text/css  </filesmatch>   
<filesmatch .js.gz$="">       ForceType application/x-javascript  </filesmatch>   
<filesmatch .svg.gz$="">      ForceType image/svg+xml     </filesmatch>   
<filesmatch .ttf.gz$="">      ForceType font/ttf  </filesmatch>   
<filesmatch .otf.gz$="">      ForceType font/otf  </filesmatch>   
<filesmatch .eot.gz$="">      ForceType application/vnd.ms-fontobject     </filesmatch> 
<filesmatch .(rtf|rtx).gz$="">        ForceType text/richtext     </filesmatch>   
<filesmatch .xsd.gz$="">      ForceType text/xsd  </filesmatch>   
<filesmatch .xsl.gz$="">      ForceType text/xsl  </filesmatch>   
AddType text/css css    
AddType application/x-javascript js     
AddType text/html html htm  
AddType text/richtext rtf rtx   
AddType text/plain txt  
AddType text/xsd xsd    
AddType text/xsl xsl    
AddType text/xml xml    
AddType text/cache-manifest manifest    
AddType video/asf asf asx wax wmv wmx   
AddType video/avi avi   
AddType video/ogg ogg ogv   
AddType video/mp4 mp4 m4v   
AddType video/webm webm     
AddType video/divx divx     
AddType video/quicktime mov qt  
AddType video/mpeg mpeg mpg mpe     
AddType audio/midi mid midi     
AddType audio/mpeg mp3 m4a  
AddType audio/ogg ogg   
AddType audio/x-realaudio ra ram    
AddType audio/wav wav   
AddType audio/wma wma   
AddType image/svg+xml svg svgz  
AddType image/bmp bmp 
AddType image/gif gif   
AddType image/x-icon ico    
AddType image/jpeg jpg jpeg jpe     
AddType image/png png   
AddType image/tiff tif tiff     
AddType font/ttf ttf    
AddType font/otf otf    
AddType font/x-woff woff    
AddType application/vnd.ms-fontobject eot   
AddType application/msword doc docx     
AddType application/x-msdownload exe    
AddType application/vnd.ms-access mdb   
AddType application/vnd.ms-project mpp  
AddType application/vnd.ms-powerpoint pot pps ppt pptx  
AddType application/vnd.ms-write wri    
AddType application/vnd.ms-excel xla xls xlsx xlt xlw   
AddType application/vnd.oasis.opendocument.database odb     
AddType application/vnd.oasis.opendocument.chart odc    
AddType application/vnd.oasis.opendocument.formula odf  
AddType application/vnd.oasis.opendocument.graphics odg     
AddType application/vnd.oasis.opendocument.presentation odp     
AddType application/vnd.oasis.opendocument.spreadsheet ods  
AddType application/vnd.oasis.opendocument.text odt     
AddType application/java class  
AddType application/x-gzip gzip     
AddType application/pdf pdf     
AddType application/x-shockwave-flash swf   
AddType application/x-tar tar 
AddType application/zip zip 
</ifmodule> 
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
    RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule> 
# Web Optimizer end Options -Indexes
 ErrorDocument 404 /404.php php_value upload_max_filesize 32M 
#php_flag session.use_trans_sid off #php_value display_errors 1
 #php_flag allow_call_time_pass_reference 1 
<ifmodule mod_mime.c="">    AddType application/x-httpd-php .ico </ifmodule>
 <ifmodule mod_dir.c="">    DirectoryIndex index.php index.html </ifmodule>
 <ifmodule mod_expires.c="">    ExpiresActive on    ExpiresByType image/jpeg &quot;access plus 3 day&quot;  ExpiresByType image/gif &quot;access plus 3 day&quot; </ifmodule>
 # Web Optimizer end

Что еще можно сделать?

Abyx's user avatar

Abyx

30.9k13 золотых знаков96 серебряных знаков156 бронзовых знаков

задан 11 ноя 2014 в 9:12

Phiolent's user avatar

Зайдите на страницу /catalog/, нажмите на панели «Изменить страницу», чтобы она открылась в визуальном редакторе, после чего нажмите кнопку «Сохранить». В общих случаях это должно помочь, т.к. это действие создаст правило для ЧПУ. Но лучше сначала сделайте копию файла /catalog/index.php, т.к. визуальный редактор битрикса не всегда ведет себя адекватно, особенно если на этой странице заложен какой-то нестандартный код.

ответ дан 11 ноя 2014 в 12:09

baduga's user avatar

badugabaduga

5131 золотой знак4 серебряных знака13 бронзовых знаков

/bitrix/admin/urlrewrite_list.php?lang=ru
http://take.ms/XxEdK

Если восстанавливали, то /.htaccess.restore переименуйте, заменив /.htaccess.

Nicolas Chabanovsky's user avatar

ответ дан 11 ноя 2014 в 12:43

kotdg's user avatar

kotdgkotdg

4025 серебряных знаков17 бронзовых знаков

1



  • 1С-Битрикс


  • Агентство Romapad


    Агентство Romapad



  • 8 января 2015

404 битрикс - правильная настройка

В битриксе 404 ошибка отрабатывается весьма специфически: неправильный адрес со статических страниц и разделов корректно перебрасывает на страницу 404.php, при этом, сохраняя неправильный URL в адресной строке браузера. То есть, все по SEO.

А вот если неправильный адрес начинается с раздела инфоблока или каталога, то сервер отдаст браузеру 404 статус страницы (и то, при определенных настройках инфоблока, о которых ниже), но 404 страницу не покажет, а покажет корневую страницу инфоблока, причем, иногда совсем другого инфоблока. Но, все-таки, сохранит неправильный URL в адресной строке.

В интернете данный вопрос поднимался не раз. Когда-то популярным решением была настройка в битрикс принудительного редиректа на 404 страницу.))) Перечитав изрядно статей, выполнив несколько найденных инструкций, желаемого результата добиться не удалось(((. Пришлось, вооружившись командой print backtrace, отловить негодяйскую 404 ошибку и заставить ее работать, как положено.

Ставим задачу:

  1. Нужно, чтобы инфоблоки и каталоги в случае неправильной ссылки отдавали 404 статус.
  2. Нужно, чтобы этот статус правильно обрабатывался и приводил к вызову страницы 404.php.

На что стоит обратить внимание?

  1. Файл 404.php лежит в корне сайта. Должен выглядеть вот так (тут все стандартно):
    <? if ($_SERVER['DOCUMENT_URI'] == "/404.php") {
     $_SERVER['REQUEST_URI'] = $_SERVER['DOCUMENT_URI'];
    }
    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("Страница не найдена"); ?>  
    ТУТ ТЕКСТ ВСЯКИЙ
    <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>
  2. В .htaccess должна быть вот такая строчка:
    ErrorDocument 404 /404.php

    Если у вас сервер на nginx, то нужно прописать в конфиге, в секции location, следующее:

    error_page 404 = /404.php;

    Тех. отступление:

    Попробуем симулировать 404 ошибку с какой-нибудь статической страницы и отловить результат через команду debug_print_backtrace();

    Skrinshot-2015-01-01-14.35.46

    Смотрим файл, видим там строку с инклюдом 404 страницы. Она вызывается, очевидно, в том случае, если страница не найдена в структуре файлов и папок, а также в файле urlrewrite.php в корне сайта, где как раз описаны все наши инфоблоки и каталоги (для правильной работы ЧПУ).

    Первая поставленная нами задача выполняется настройкой инфоблоков и компонентов.

  3. Проверим настройки самих каталогов:

    Скриншот 2015-01-01 14.56.00

    URL страницы ИБ — должен указывать на папку, из которой будет осуществляться вызов инфоблока.

    URL страницы раздела — если структура инфоблока будет иметь подразделы, то ссылка должна строиться на основе символьного кода раздела.

    URL страницы детального просмотра — если элемент находится в подразделе, то к ссылке будет прибавляться символьный код раздела перед символьным кодом элемента. Иначе — только символьный код элемента.

  4. И инфоблоков:

    Скриншот 2015-01-01 15.48.25

    То есть, как мы видим, для инфоблоков подразделы можно не описывать.

  5. Проверяем настройки вызова инфоблоков:

    Скриншот 2015-01-01 15.22.18

    Обязательно проверяем, что отмечена галка «Включить поддержку ЧПУ»!

    Каталог ЧПУ — корневая папка инфоблока.

    Раздел — #SECTION_CODE#/ — повторяем из настроек инфоблока, но не ставим слеш в начале, иначе компонент будет работать неверно.

    Детальная информация — #SECTION_CODE#/#ELEMENT_CODE#/ —  ссылка формируется на основе символьного кода раздела (если есть) и кода элемента. Опять же, слеш в начале не ставим!

    Если предполагается, что все элементы будут располагаться в корне инфоблока, без подразделов, то можно использовать следующие настройки:

    Скриншот 2015-01-01 15.49.27

    То есть, поле для страницы раздела вообще можем пропустить, для страницы элемента: #ELEMENT_CODE#/ . Не забываем пропустить слеш в начале!

  6. Отмечаем галочку там же в настройках: «Устанавливать статус 404, если не найдены элемент или раздел:».

    Тех. отступление:

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

    Скриншот 2015-01-01 15.26.32

    Этим мы и воспользуемся, а чтобы данный статус правильно обрабатывался

  7. Добавим следующий код в файл /bitrix/php_interface/init.php:
    <?
    AddEventHandler('main', 'OnEpilog', '_Check404Error', 1);
    function _Check404Error(){
     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';
     }
    }
    ?>

С этого момента страница ошибок будет работать! (наверное))) Если нет, опишите вашу ситуацию в комментариях.

UPD от 29.08.15: чуть обновил код файла 404.php  и сниппет для init.php.

UPD от 15.01.18: настраивал сегодня на одном проекте отладку 404-й ошибки по данной инструкции. Все работает отлично)) Версия битрикса — последняя на указанную дату.





  • 1с битрикс

Агентство Romapad

Работаем с 2009 года. Реализовано более 400 проектов. Слаженная команда профессионалов. Создание и администрирование сайтов. Техническая поддержка. Помощь новичкам.

Подпишитесь на рассылку новостей


21.10.2019


Комментариев нет


13.10.2018


Комментариев нет


12.02.2018


Комментариев нет


21.01.2018


Комментариев нет

Комментарии к публикациям

“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo”

John DoeAccountant, Colibri

“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo”

Max PowellCEO, Falcon

“Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo”

Alex PaloOwner, Eagle


04.09.2012


Комментариев нет

Этим постом начинаю цикл, посвященный раскрутке сайтов. И сегодня мы поговорим о том, как

Продолжить чтение


19.09.2012


60 комментариев

Если вы любите Wordpress и вам нужно создать интернет-магазин, то, наверняка, вы в первую очередь

Продолжить чтение


26.09.2012


Комментариев нет

Гаджеты на блоггере — это небольшие готовые модули, которые позволяют быстро подключить к вашему

Продолжить чтение

Не работает 404 ошибка на Битриксе.
site.ru/fgsdfgsdg — отдает 200 и белую страницу.
При этом в других ситуациях на сайте ошибка работает хорошо:
site.ru/catalog/sfgsdgfsg — отдает и код 404 и красивую страницу ошибки (что исключает то, что 404 не работает и не настроена в принципе)

Что уже проверялось:
1. В htaccess есть строка ErrorDocument 404 /404.php
2. 404.php есть и в ней есть

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

3. В файл bitrixphp_interfaceinit.php добавлялся — не помогло:

AddEventHandler('main', 'OnEpilog', '_Check404Error', 1);  
function _Check404Error(){
   if(defined('ERROR_404') && ERROR_404=='Y' || CHTTP::GetLastStatus() == "404 Not Found"){
      GLOBAL $APPLICATION;
      $APPLICATION->RestartBuffer();
      require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/header.php';
      require $_SERVER['DOCUMENT_ROOT'].'/404.php';
      require $_SERVER['DOCUMENT_ROOT'].SITE_TEMPLATE_PATH.'/footer.php';
   }
}

Этот вариант был предложен здесь в аналогичном старом вопросе.
Заранее спасибо.

  • Ошибка загрузки ресурсы не обнаружены
  • Ошибка загрузки ресурсов пабг мобайл
  • Ошибка загрузки ресурсов wot blitz на андроид
  • Ошибка загрузки ресурсов minecraft
  • Ошибка загрузки результатов матча age of empires