Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

разные 404

00 голосов
3
Всем привет.
Подскажите, пожалуйста, кто знает, как настроить разный вывод 404 ошибок?
Имеем 2 сайта на одной копии продукта.
В настройках первого указано корневая папка "/"
В настройках второго "/site2"

В htaccess первого сайта прописано :
ErrorDocument 404 /404.php

В htaccess второго сайта (лежит в корневой папке второго сайта) прописано :
ErrorDocument 404 /site2/404.php

Для второго сайта положили 404 страницу в "/site2/404.php" - то есть в корневую папку второго сайта.
Но при проверке на несуществующие страницы все равно отсылает на 404 первого сайта ("/404.php").

Как быть?
спросил 18 Сен, 13 от Vikusha (120 баллов)

3 Ответы

00 голосов
Можно как-то так сделать (в файле 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");

require($_SERVER["DOCUMENT_ROOT"]."/404_".SITE_ID.".php");

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

И, собственно, файлы 404_SITE_ID.php для каждого сайта
ответил 23 Сен, 13 от BRENN (1,080 баллов)
00 голосов
А если не использовать header и footer?
Мне они совершенно не нужны.

Дело в том, что на сайте 2 шаблона. Первый для индекса, второй для всех остальных файлов и папок.
Если делать так, как вы предложили, что на запрос, например, www.mysite.ru/site2/qwerty отображается страница с шаблоном внутренних страниц. А для 404 там совершенно другой макет. То есть в work_area выводятся данные 404. Но внешний вид страницы не соответствует макету 404. Если же набрать www.mysite/site2/404.php, то выводится все как нужно.

Созданием собственного шаблона для 404 и назначание его для 404.php проблема не решилась.
ответил 23 Дек, 13 от Vikusha (120 баллов)
00 голосов
Если использовать вот это

Код
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");?>

вместо подключения header и footer, то шаблон подключаться не будет.
ответил 07 Апр, 14 от BRENN (1,080 баллов)

Похожие вопросы

0 голосов
0 ответов
спросил 25 Апр, 13 от Kania (5,180 баллов)
0 голосов
1 ответ
спросил 27 Дек, 13 от Tvvix (180 баллов)
0 голосов
5 ответов
спросил 13 Дек, 13 от Sagra (100 баллов)
0 голосов
5 ответов