Белк на PhpBB 3.0.14
https://belk.info/phpbb/

Страницы ошибок в стиле форума
https://belk.info/phpbb/viewtopic.php?f=2&t=142
Страница 1 из 1

Автор:  Belk [ 20 май 2026, 18:12 ]
Заголовок сообщения:  Страницы ошибок в стиле форума

Страницы ошибок в стиле форума

Ошибки, как 400, 401, 403, 404, 500, выводятся на дефолтные страницы хостинга, то есть черными буквочками на белом фоне. Смотрится сие, конечно, не очень.
Эта модификация позволяет выводить это ошибки в стиле вашего форума (на вашей страничке), что не нарушает "общего восприятия сайта". :)

Здесь этот мод тоже установлен - посмотрите: ошибка 404 - страница не существует.

Делается это не сложно.


Создать файл error.php со следующим содержимым

Код: Выделить всё

<?php
/*
*
* error.php
*
* @package th23_error_pages
* @author Thorsten Hartmann (www.th23.net)
* @copyright (c) 2008 by Thorsten Hartmann (www.th23.net)
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
 
// setup
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
 
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$template->assign_vars(array(
   'U_TH23_ERROR_PAGES_BASE' => generate_board_url() . '/',
));
// in case of an error page we don't need more
$err_code = request_var('e', 0);
switch ($err_code)
{
   case '400':
      $msg_title = $user->lang['TH23_ERROR_400_TITLE'];
      trigger_error('TH23_ERROR_400_BAD_REQUEST');
   break;
   case '401':
      $msg_title = $user->lang['TH23_ERROR_401_TITLE'];
      trigger_error('TH23_ERROR_401_UNAUTHORIZED');
   break;
   case '403':
      $msg_title = $user->lang['TH23_ERROR_403_TITLE'];
      trigger_error('TH23_ERROR_403_FORBIDDEN');
   break;
   case '404':
      $msg_title = $user->lang['TH23_ERROR_404_TITLE'];
      trigger_error('TH23_ERROR_404_NOT_FOUND');
   break;
   case '500':
      $msg_title = $user->lang['TH23_ERROR_500_TITLE'];
      trigger_error('TH23_ERROR_500_INT_SERVER');
   break;
   default:
      $msg_title = $user->lang['TH23_ERROR_UNKNOWN_TITLE'];
      trigger_error('TH23_ERROR_UNKNOWN');
   break;
}
 
?>
 


сохранить (я ставлю кодировку UTF8 без BOM) и закачать в корень сайта (где файл config.php).


Открыть файл .htaccess в корне сайта

Найти

Код: Выделить всё

<Files "config.php">


Вставить перед найденным

Код: Выделить всё

# th23 start - error pages
ErrorDocument 400 /error.php?e=400
ErrorDocument 401 /error.php?e=401
ErrorDocument 403 /error.php?e=403
ErrorDocument 404 /error.php?e=404
ErrorDocument 500 /error.php?e=500
# th23 end - error pages


Если Ваш форум находится в каталоге, например ваш сайт/forum/ то обязательно укажите в файле .htaccess полный путь, пример:

Код: Выделить всё

http://www.domen.ru/forum/error.php?e=400


например здесь сайт находится "в каталоге" и код будет такой:

Код: Выделить всё

# th23 start - error pages
ErrorDocument 400 https://belk.info/phpbb/error.php?e=400
ErrorDocument 401 https://belk.info/phpbb/error.php?e=401
ErrorDocument 403 https://belk.info/phpbb/error.php?e=403
ErrorDocument 404 https://belk.info/phpbb/error.php?e=404
ErrorDocument 500 https://belk.info/phpbb/error.php?e=500
# th23 end - error pages


Открыть language/ru/common.php

Найти

Код: Выделить всё

'TEST_CONNECTION'


Вставить перед найденным

Код: Выделить всё

// th23 start - error pages
   'TH23_ERROR_400_TITLE' => 'Ошибка 400 - Неверный запрос',
   'TH23_ERROR_400_BAD_REQUEST' => 'Ваш запрос имеет ошибки в синтаксисе.',
   'TH23_ERROR_401_TITLE' => 'Ошибка 401 - Нет авторизации',
   'TH23_ERROR_401_UNAUTHORIZED' => 'Запрос требует идентификации пользователя. Произошла ошибка при идентификации.',
   'TH23_ERROR_403_TITLE' => 'Ошибка 403 - Запрещено',
   'TH23_ERROR_403_FORBIDDEN' => 'У вас нет необходимых прав доступа к файлам либо выполнению запроса.',
   'TH23_ERROR_404_TITLE' => 'Ошибка 404 - Не найдено',
   'TH23_ERROR_404_NOT_FOUND' => 'На данном сервере такого файла не существует.',
   'TH23_ERROR_500_TITLE' => 'Ошибка 500 - Ошибка сервера',
   'TH23_ERROR_500_INT_SERVER' => 'На сервере возникла ошибка.',
   'TH23_ERROR_UNKNOWN_TITLE' => 'Ошибка - Неизвестно',
   'TH23_ERROR_UNKNOWN' => 'Неизвестная ошибка сервера.',
   // th23 end - error pages


другой перевод для ошибок

Код: Выделить всё

// th23 start - error pages
    'TH23_ERROR_400_TITLE' => 'Ошибка 400 - Неверный запрос.',
    'TH23_ERROR_400_BAD_REQUEST' => 'Запрос содержит неверный синтаксис и не может быть выполнен.',
    'TH23_ERROR_401_TITLE' => 'Ошибка 401 - Нет авторизации.',
    'TH23_ERROR_401_UNAUTHORIZED' => 'Запрос требует идентификации пользователя. Произошла ошибка при идентификации.',
    'TH23_ERROR_403_TITLE' => 'Ошибка 403 - Доступ запрещён.',
    'TH23_ERROR_403_FORBIDDEN' => 'У вас нет необходимых прав доступа к выполнению запроса.',
    'TH23_ERROR_404_TITLE' => 'Ошибка 404 - Не найдено.',
    'TH23_ERROR_404_NOT_FOUND' => 'Страница не найдена.',
    'TH23_ERROR_500_TITLE' => 'Ошибка 500 - Ошибка Сервера.',
    'TH23_ERROR_500_INT_SERVER' => 'Внутренняя Ошибка Сервера.',
    'TH23_ERROR_UNKNOWN_TITLE' => 'Неизвестная ошибка.',
    'TH23_ERROR_UNKNOWN' => 'Неизвестная ошибка сервера.',
    // th23 end - error pages


Теперь надо подключить вывод:

Открыть /styles/ваш стиль/template/overall_header.html

Найти



Вставить после найденного

Код: Выделить всё

<!-- th23 start - error pages -->
<!-- IF U_TH23_ERROR_PAGES_BASE -->
<base href="{U_TH23_ERROR_PAGES_BASE}" />
<!-- ENDIF -->
<!-- th23 end - error pages -->


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

Код: Выделить всё

http://ваш сайт/indexx.php


Если всё сделано верно - получится ошибка 404 в стиле вашего сайта.

Если у вас не получается создать файл error.php - можете скачать готовый:

Вложение:
error.rar [735 байт]
Скачиваний: 0


© тема

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/