Выводить ошибку 404 если тема удалена - Дизайн и модификация Invision Power Board

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

 

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

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

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

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

Страница 1 из 1

Выводить ошибку 404 если тема удалена

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 03-Август 11
  • Репутация: 1
  • IPB version:3.0.x
 

Отправлено 08 Декабрь 2015 - 18:47

День добрый, есть очень важная проблема, ни где не нашел решения, это выводить ошибку 404 если форум не существует или был удален, так как поисковая система выдает удаленный форум, а он должен удалить из поисковика.

Есть форум
Как настроить вывод ошибки 404 например если перейдем по ссылке /index.php?showtopic=1
Если кто то уже делал напишите пожалуйста, за ранее спасибо!
0

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

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

Отправлено 08 Декабрь 2015 - 21:03

У вас и по серьезнее проблема имеется, версия форума очень старая, многие важные патчи безопасности для нее не выпускались. Это же старый добрый 3.0x, интересно как его до сих пор еще не взломали... Ссылки из темы удалил от греха подальше, если вдруг кто-то не устоит перед соблазном. 3.0 это просто находка для юных скрипткиддисов.

По поводу сабжа.
В 3.0 еще небыла организована правильная отдача кодов статусов на разные события - несуществующие темы, запрещенный доступ и тд. В последующих версиях отдаются соответствующие коды для всех ошибок форума.

Открыть \admin\sources\classes\output\publicOutput.php
Найти

public function showError( $message, $code=0, $logError=FALSE, $logExtra='' )

Заменить на

public function showError( $message, $code=0, $logError=FALSE, $logExtra='', $header=401 )

Найти

		//-----------------------------------------
		// Send notification if needed
		//-----------------------------------------
    	
		$this->sendErrorNotification( $msg, $code );

Ниже добавить

		//-----------------------------------------
		// Set header response code
		//-----------------------------------------
    	
		$this->outputFormatClass->setHeaderCode( $header ? $header : 401 );


Открыть admin\sources\classes\output\formats\coreOutput.php

Найти
		if ( ! $this->_headerStatus )
		{
			switch( $this->_headerCode )
			{
				case 200:
					$this->_headerStatus = 'OK';
				break;
				case 301:
					$this->_headerStatus = 'Moved Permanently';
				break;
			}
		}

Заменить на

		if ( ! $this->_headerStatus )
		{
			switch( $this->_headerCode )
			{
				case 200:
					$this->_headerStatus = 'OK';
				break;
				
				case 301:
					$this->_headerStatus = 'Moved Permanently';
				break;
				
				case 302:
					$this->_headerStatus = 'Moved Temporarily';
				break;
				
				case 401:
					$this->_headerStatus = 'Unauthorized';
				break;				
				
				case 403:
					$this->_headerStatus = 'Forbidden';
				break;

				case 404:
					$this->_headerStatus = 'Not Found';
				break;
				
				case 500:
					$this->_headerStatus = 'Internal Server Error';
				break;
				
				case 503:
					$this->_headerStatus = 'Service Unavailable';
				break;
			}
		}


Теперь по умолчанию все ошибки форума будут отдавать статус 401 - Unauthorized. Этого хватит чтобы избавится от индексации служебных страниц.

Чтобы настроить 404 код для несуществующих тем:

Открыть admin\applications\forums\modules_public\forums\topics.php

Найти
$this->registry->output->showError( 'topics_no_tid', 10341 );

Заменить на

$this->registry->output->showError( 'topics_no_tid', 10341, null, null, 404 );


Найти

$this->registry->output->showError( 'topics_no_tid', 10343 );

Заменить на

$this->registry->output->showError( 'topics_no_tid', 10343, null, null, 404 );


Найти
$this->registry->output->showError( 'topics_no_fid', 10342 );

Заменить на

$this->registry->output->showError( 'topics_no_fid', 10342, null, null, 404 );


И далее по списку можно править все ошибки форума.
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 03-Август 11
  • Репутация: 1
  • IPB version:3.0.x
 

Отправлено 10 Декабрь 2015 - 10:57

Спасибо большое, займусь тогда обновлением версии.
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 03-Август 11
  • Репутация: 1
  • IPB version:3.0.x
 

Отправлено 10 Декабрь 2015 - 11:37

Какую версию поставить, чтобы было безопасно?
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 03-Август 11
  • Репутация: 1
  • IPB version:3.0.x
 

Отправлено 10 Декабрь 2015 - 13:07

я сделал все как вы написали, но не сробатывает, возможно нужно прописать в .htaccess о том что нужно открывать страницу /404.php к примеру
0

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

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

Отправлено 10 Декабрь 2015 - 15:08

Нужно смотреть заголовки ответа сервера. По умолчанию все ошибки будут отдавать код 401, что уже "срабатывает" против индексации.
0

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

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 14
  • Регистрация: 03-Август 11
  • Репутация: 1
  • IPB version:3.0.x
 

Отправлено 11 Декабрь 2015 - 00:16

Какой форум вы посоветуйте? версию, для обновления
0

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

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

Отправлено 11 Декабрь 2015 - 00:22

Последнюю. На данный момент 3.4.8.
0

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


Страница 1 из 1


Быстрый ответ

  

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
При копировании материалов с сайта
прямая ссылка на источник обязательна