AntiSlaed CMS
Вход
Логин: Пароль:Забыли пароль?
Запомнить вас на этом компьютере?
Войти скрытым?

Здравствуйте, Гость ( Вход | Регистрация )

> Внимание!

Адрес нашего форума изменился, теперь мы доступны по адресу antislaed.net. Обновите ссылки и закладки, он больше не изменится.


 
Ответить в данную темуНачать новую тему
> Правильное отображение серверных ошибок, а не как по-умолчанию - редирект (или загрузка) на главную
Diego
сообщение Jul 21 2009, 18:12
Сообщение #1


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 361
Регистрация:
1.5.2008
Из: Ярославль
Пользователь №: 3,539
Спасибо сказали: 134

Вставить ник




Вот что сделал я (делал в версии 4.3.1 NEXT, но думаю в других похоже):
Все изменения проводим в корневом index.php системы. Находим в нём
КОД
$file = ($file) ? $file : "index";

и ниже добавляем
КОД
$turl = parse_url($_SERVER['REQUEST_URI']);


Дальше находим все
КОД
header("Location: index.php");
exit;

И заменяем на
КОД
header("HTTP/1.1 404 Not Found");
$pagetitle = $conf['defis']." "._ERROR." 404";
head();
warning (_NOTFOUND, "", "", 1);
foot();


Дальше ищем
КОД
else {
    $home = 1;
    $hmodul = explode(",", $conf['module']);
    $hi = mt_rand(0, count($hmodul) - 1);
    $name = $hmodul[$hi];
    $conf['name'] = $name;
    $theme = get_theme();
    if (file_exists("modules/".$name."/".$file.".php")) {
        include("modules/".$name."/".$file.".php");
    } else {
        head();
        warning(_HOMEPROBLEMUSER, "", "", 1);
        foot();
    }
}

И заменяем на
КОД
elseif (($turl['path'] == '/' || $turl['path'] == '/index.php') && !isset($turl['query'])) {
    $home = 1;
    $hmodul = explode(",", $conf['module']);
    $hi = mt_rand(0, count($hmodul) - 1);
    $name = $hmodul[$hi];
    $conf['name'] = $name;
    $theme = get_theme();
    if (file_exists("modules/".$name."/".$file.".php")) {
        include("modules/".$name."/".$file.".php");
    } else {
        head();
        warning(_HOMEPROBLEMUSER, "", "", 1);
        foot();
    }
} else {
    header("HTTP/1.1 404 Not Found");
    $pagetitle = $conf['defis']." "._ERROR." 404";
    head();
    warning (_NOTFOUND, "", "", 1);
    foot();
}


Сообщение отредактировал Diego: Jul 23 2009, 12:22
Diego, Вас 1 раз(а) поблагодарили за это сообщение:
DjSalamander
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Diego
сообщение Jul 23 2009, 12:23
Сообщение #2


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 361
Регистрация:
1.5.2008
Из: Ярославль
Пользователь №: 3,539
Спасибо сказали: 134

Вставить ник




UP терь всё нормально должно быть
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
DjSalamander
сообщение Jul 23 2009, 15:12
Сообщение #3


прорвемся...
Иконка группы

Группа: [..AS..]

Сообщений: 2,388
Регистрация:
6.9.2008
Из: Latvia Riga-Vangaži
Пользователь №: 5,367
Спасибо сказали: 457

Вставить ник




Спасибо, попробуем, если пашет, тады Diego лучший (IMG:http://antislaed.net/style_emoticons/default/biggrin.gif)
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
DjSalamander
сообщение Jul 23 2009, 20:29
Сообщение #4


прорвемся...
Иконка группы

Группа: [..AS..]

Сообщений: 2,388
Регистрация:
6.9.2008
Из: Latvia Riga-Vangaži
Пользователь №: 5,367
Спасибо сказали: 457

Вставить ник




ага, на 4.2 работает коректно, ток строчки малость отличаются, а так гуд, ты не знаеш, где эта переадресация находится, мне надо заменить адрес на свою 404ю , я ее сделал, а где переадресацию заменить ненашел
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Sys(3)X
сообщение Jul 24 2009, 00:51
Сообщение #5


Живу на АС
Иконка группы

Группа: Администратор

Сообщений: 2,898
Регистрация:
27.3.2007
Пользователь №: 1
Спасибо сказали: 1012

Вставить ник




DjSalamander

Я так понимаю ты имеешь ввиду переадресацию на свою страницу ошибки? Это ErrorDocument директива в .htaccess, установи её и проверь корректно ли отдаются заголовки в случае ошибки.
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
DjSalamander
сообщение Jul 24 2009, 01:19
Сообщение #6


прорвемся...
Иконка группы

Группа: [..AS..]

Сообщений: 2,388
Регистрация:
6.9.2008
Из: Latvia Riga-Vangaži
Пользователь №: 5,367
Спасибо сказали: 457

Вставить ник




в том то и дело, что нет, могу писать в htaccess любой расклад, всеравно выкидывает на родную страницу 404, в адрес забиваю любую голиматью и кидает сюда, а на мою 404, только если в браузере писать _http://site/404

и ничего не понимаю почему так, может сам htaccess глючит?
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Diego
сообщение Jul 24 2009, 09:20
Сообщение #7


Живу на АС
Иконка группы

Группа: Пользователи

Сообщений: 361
Регистрация:
1.5.2008
Из: Ярославль
Пользователь №: 3,539
Спасибо сказали: 134

Вставить ник




А какого содержания твоя страничка? Просто если делать редирект через header, то не получится отдавать 404 ошибку серверу той странице, которая не существует. Я сначала сделал header("index.php?error=404"); но в этом случае сервер ставит неправильной страничке (которую типа вызывали, а её нет) ошибку 302
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
DjSalamander
сообщение Jul 24 2009, 11:11
Сообщение #8


прорвемся...
Иконка группы

Группа: [..AS..]

Сообщений: 2,388
Регистрация:
6.9.2008
Из: Latvia Riga-Vangaži
Пользователь №: 5,367
Спасибо сказали: 457

Вставить ник




сраница html.404, вот скрин:

Прикрепленный файл  testzahvat.gif ( 34.71 Кб ) Кол-во загрузок: 11
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение

Ответить в данную темуНачать новую тему

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
 

RSS Текстовая версия Сейчас: 17 May 2024 - 10:33
Хостинг предоставлен NetLevel.Ru   Eleanor CMS