Ошибки, как 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
Открыть 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
Если Ваш форум находится в каталоге, например ваш сайт/forum/ то обязательно укажите в файле .htaccess полный путь, пример:
Код: Выделить всё
http://www.domen.ru/forum/error.php?e=400
Теперь надо подключить вывод:
Открыть /styles/ваш стиль/template/overall_header.html
Открыть /styles/ваш стиль/template/overall_header.html
Найти
Вставить после найденного
Код: Выделить всё
<head>
Вставить после найденного
Код: Выделить всё
<!-- 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 - можете скачать готовый:
Вложение: