Своя ошибка 404 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются проблемы поисковой оптимизации и индексирования форумов.
Если зашли сюда случайно, пожалуйста, не оффтопьте и обратите внимание на другие разделы.
Оформление форумов, включая верстку скинов.
Настройка форумов, установка и администрирование.
Размещение рекламы на форумах.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

Своя ошибка 404

#1 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 06 Сентябрь 2014 - 15:21

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

Вложение  404.JPG (48,38К)
Количество загрузок: 26
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 06 Сентябрь 2014 - 15:51

Своя страница об ошибке
Без костылей это не сделать. Апач, насколько я знаю, не перехватывает ошибки отправленные из скриптов, поэтому переопределить их через ErrorDocument не получится. И 404 заголовок отправляется не только к некорректно набранному адресу, а еще к куча других ошибок, перегрузить все 404 ошибки одной страницы будет не правильно, а то может выйти что-то подобное.
0

#3 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 06 Сентябрь 2014 - 16:02

siv1987, 403 работает нормально, но я так понял, что с 404 лучше не заморачиваться?
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 06 Сентябрь 2014 - 16:13

Просмотреть сообщениеАсид сказал(а):

403 работает нормально

При каких обстоятельствах он работает? При листинге категории, или при выводе какой нибудь ошибки форума с кодом 403? Если при листинге категорий то естественно будет работать, эта системная ошибка сервера и ее можно перехватить через htaccess. Таким же образом можете отключить реврайт ссылок (мод_реврайт перехватывает все запросы) и запросить несуществующий адрес, тогда 404 ошибка тоже "сработает". Но в данном случае мод_реврайт перехватывает все несуществующие запросы и отправляет на index.php.
1

#5 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 06 Сентябрь 2014 - 16:24

Просмотреть сообщениеsiv1987 сказал(а):

При каких обстоятельствах он работает?
В .htaccess добавил:

ErrorDocument 403 /403.html

(403.html заблаговременно был создан в корне форума).


Просмотреть сообщениеsiv1987 сказал(а):

При листинге категории, или при выводе какой нибудь ошибки форума с кодом 403?
Запрет листинга никак не повлиял на вывод ошибки 403.


Просмотреть сообщениеsiv1987 сказал(а):

Таким же образом можете отключить реврайт ссылок (мод_реврайт перехватывает все запросы) и запросить несуществующий адрес, тогда 404 ошибка тоже "сработает". Но в данном случае мод_реврайт перехватывает все несуществующие запросы и отправляет на index.php.
Вы имеете ввиду RewriteEngine off?
0

#6 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 06 Сентябрь 2014 - 16:25

Кстати, если нужна имена 404 ошибка при запросе несуществующего адреса, то вызов ее находится в контроллере /admin/sources/base/ipsController.php

$this->registry->getClass('output')->showError( 'incorrect_furl', 404, null, null, 404 );

Можете сверстать свой шаблон с ошибкой в врапере форума. Можно вместо нее подключить сторонний файл.
1

#7 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 06 Сентябрь 2014 - 16:32

Просмотреть сообщениеАсид сказал(а):

В .htaccess добавил:

При каких обстоятельствах (случаях) срабатывает?
Я вот зашел у вас в профиль пользователя. Доступ запрещен, а в заголовке ответа от сервера 403 ошибка, но у меня выводится стандартная ошибка форума.

GET /user/907-helga/
403 Forbidden

Разницу видите? Если ошибка обрабатывается сервером (запрос каталога без индексного файла, блокировка ип через htaccess и другие действия которые вызывают 403 код) то ее можно перехватить через htaccess. В случае запросом несуществующих УРЛ, то мод реврайт захватывает их и отправляет форуму. И уже все ответы отправленные из форума не являются ошибкой сервера.

Просмотреть сообщениеАсид сказал(а):

Запрет листинга никак не повлиял на вывод ошибки 403.

Что в вашем понимании значит "вывод ошибки 403"?

Просмотреть сообщениеАсид сказал(а):

Вы имеете ввиду RewriteEngine off?

Да.
0

#8 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 06 Сентябрь 2014 - 17:02

siv1987, я думаю, такие ошибки, как "запрет гостю к просмотру профиля пользователя" можно оставить на уровне форума. А ошибки, выдаваемые при попытке доступа к запрещенным от просмотра файлам (или директориям), можно осуществлять через ошибку, посредством сервера (403).

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

#9 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 06 Сентябрь 2014 - 17:24

Просмотреть сообщениеАсид сказал(а):

я думаю, такие ошибки, как "запрет гостю к просмотру профиля пользователя" можно оставить на уровне форума. А ошибки, выдаваемые при попытке доступа к запрещенным от просмотра файлам (или директориям), можно осуществлять через ошибку, посредством сервера (403).

Эти ошибки обрабатываются на разных уровнях, поэтому и результаты разные. Хотя и то, и то имеет код 403 Forbidden.

Просмотреть сообщениеАсид сказал(а):

И вообще, изначально, мне был интересен немного иной вопрос

Ну изначально вопрос сабжа был про то, как создать свою страницу с ошибками в случае некорректно набранного адреса без дефолтной страницы форума. Я вам объяснил почему появляется ошибка форума при запросе таких адресов, и почему без костылей в данном случае это сделать нельзя. Потом вы сказали что "403 работает нормально". Я вам объяснил почему 403 работает "нормально", и почему 404 работает "не нормально".
0

#10 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 06 Сентябрь 2014 - 17:31

siv1987, спасибо большое. Я вас прекрасно понял. И ведь действительно, при отключении RewriteEngine (в положение Off), ошибка 404 работает везде (даже при обращении гостем к профилю зарегистрированного пользователя). Но ведь отключение RewriteEngine повлияет на другие функции .htaccess в mod_rewrite.c, коими учитывается именно рабочее положение RewriteEngine (On).
0

#11 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 07 Сентябрь 2014 - 12:57

Просмотреть сообщениеsiv1987 сказал(а):

Кстати, если нужна имена 404 ошибка при запросе несуществующего адреса, то вызов ее находится в контроллере /admin/sources/base/ipsController.php
Не подскажите, что там нужно поправить?
0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 07 Сентябрь 2014 - 19:54

require DOC_IPS_ROOT_PATH.'404.php';

Если включен ЧПУ, то править нужно в /admin/sources/base/ipsRegistry.php

			if ( ipsRegistry::$settings['use_friendly_urls'] AND self::$_noFurlMatch === true )
			{
				self::getClass('output')->showError( 'incorrect_furl', 404, null, null, 404 );
			}

Заменив на

			if ( ipsRegistry::$settings['use_friendly_urls'] AND self::$_noFurlMatch === true )
			{
				require DOC_IPS_ROOT_PATH.'404.php';
				exit;
			}

3

#13 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 07 Сентябрь 2014 - 20:07

siv1987, большое спасибо :)
0

#14 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 41
  • IPB version:3.4.x
 

Отправлено 07 Сентябрь 2014 - 20:17

Просмотреть сообщениеsiv1987 сказал(а):

Если включен ЧПУ
А если ЧПУ не включён?
0

#15 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 721
  • Регистрация: 20-Март 09
  • Репутация: 2 269
  • IPB version:3.1.x
 

Отправлено 07 Сентябрь 2014 - 20:31

А если не включен то править ничего не нужно (см #6, но в данном случае не имеет смысла).
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в этой теме

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна