Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Страница 404 вместо форумного сообщения об ошибке

Опубликовано:

Проблема в том, что если в индекс попадают несуществующие форумные url, под разными адресами в индексе дублируется сообщение об ошибке.

А такие дубли – не есть гуд.

 

С сайтом все просто, там 404 настроишь, и все...

А вот как форум заставить перенаправлять ошибочные внутренние адреса на страницу 404, не знаю.

Помогите, плиз.

Рекомендованные сообщения

Опубликовано:
С сайтом все просто, там 404 настроишь, и все...

А вот как форум заставить перенаправлять ошибочные внутренние адреса на страницу 404, не знаю.

Они же и так перенаправляются. Чем плоха 404 страница сайта?

Опубликовано:
  • Автор

Они перенаправляются на страницу об ошибке форума, если url корректный.

Например сейчас в индексе есть такие URL

 

Надо, чтобы выводило на страницу сайта 404.html, а не на ошибку форума.

Хотя бы поисковых ботов выводило.

Юзеров-то ладно, пусть на форуме оставляет.

  • 1 месяц спустя...
Опубликовано:

Тоже такая же проблема, хотел решить её, у меня запрос один на 1 место в гугле и яндексе стоит уже 2 емсяцв, хотя странички не существует, выдаёт ошибку форума, и поисковик её не удаляет.

 

вот ещё кое что нашёл , но оно для 2.1 - может кто попрбует или переделает под 2.3

 

в index.php наити.

//--------------------------------
//  Do we have permission to view
//  the board?
//--------------------------------

if ($ipsclass->member['g_view_board'] != 1)
{
$ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'no_view_board') );
}

 

заменить на.

 

//--------------------------------
//  Do we have permission to view
//  the board?
//--------------------------------

if ($ipsclass->member['g_view_board'] != 1)
{
$ipsclass->boink_it("http://www.yoursite.com/forum/index.php?act=idx");
}

 

в sources/classes/class_session.php - наити.

 

$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'you_are_banned', 'INIT' => 1 ) );

 

Заменить на

 

$this->ipsclass->boink_it("http://www.yoursite.com/forum/index.php?act=idx");

 

Всё!!!

 

Дополнительный текс.

 

Redirecting the banned members.

 

Replace the url in the new codes with your forum address but with a small error on it (e.g. change the "forums" folder to "forum"). Remember, the point here is to redirect them to an error page.

 

Alternatively, you can send them to another site or even another page created by you.

 

Your banned members will not understand what is happening and maybe think that your forums are offline or no longer exist, leaving you in peace for a while.

 

 

Upload the files to your server.

 

Upload the files back to your FTP server and you're done with this small modification.

 

If you want to test this modification, create a test member account in the Banned group and log in with his details. You should be redirected to the page you stated in the steps 1 and 2.

 

Orignal Article Author: Cointreau

Опубликовано:

В /sources/ipsclass.php

 

Найти:

$html = $this->compiled_templates['skin_global']->Error( $msg, $em_1, $em_2, 1);

 

Заменить на:

#404 for search bots
if( $this->is_bot )
{
 $this->boink_it('адрес страницы 404');
}
else
{
 $html = $this->compiled_templates['skin_global']->Error( $msg, $em_1, $em_2, 1);
}

 

При возникновении любых стандартных ошибок ботов будет перекидывать на страницу 404.

Опубликовано:
  • Автор

Спасибо большое :(

Тут уже вставила.

  • 2 недели спустя...
Опубликовано:

что то я не понял как вся эта система работает...

 

Так нужно было настроить?

 

#404 for search bots
if( $this->is_bot )
{
 $this->boink_it('/404.html');
}
else
{
 $html = $this->compiled_templates['skin_global']->Error( $msg, $em_1, $em_2, 1);
}

Опубликовано:

Без подчеркивания перед http только.

Опубликовано:
Без подчеркивания перед http только.

ну это понятно. Вот только не пойму в чем весь прикол. Кто туда будет перенаправляться? Боты? Но ведь при вводе ошибочного урл и так включается страничка с кодом 404. Или изменения будут работать для таких вот случаях - _http://ipbskins.ru/forum/tags/test.html ?

 

Нужно в данном случае запрещать /404.html или нет?

Опубликовано:
  • Автор

Она будет работать для ботов вместо сообщения об ошибке форума.

Ошибка форума индексируется многократно при любых неправильных внутренних url форума.

Получаются дубли.

Вот эти дубли теперь для ботов заменятся нормальной законной ошибкой 404.

/404.html запрещать не нужно.

Боты ее знают, и это теперь одна на все про все страничка вместо десятков url с форумной ошибкой.

  • 3 года спустя...
Опубликовано:

Она будет работать для ботов вместо сообщения об ошибке форума.

Ошибка форума индексируется многократно при любых неправильных внутренних url форума.

Получаются дубли.

Вот эти дубли теперь для ботов заменятся нормальной законной ошибкой 404.

/404.html запрещать не нужно.

Боты ее знают, и это теперь одна на все про все страничка вместо десятков url с форумной ошибкой.

 

В портале новом можно вписывать 404 ошибку. Вот пример кода для создания)

 

<!--?php header("HTTP/1.1 404 Not Found"); ?-->


<title>404 - Название</title>

<h1><font size="7">404: Not found</font></h1>
<br />
<h2><font size="4">Такой страницы не существует</font></h2>

  • 4 недели спустя...
Опубликовано:

Она будет работать для ботов вместо сообщения об ошибке форума.

Ошибка форума индексируется многократно при любых неправильных внутренних url форума.

Получаются дубли.

Вот эти дубли теперь для ботов заменятся нормальной законной ошибкой 404.

/404.html запрещать не нужно.

Боты ее знают, и это теперь одна на все про все страничка вместо десятков url с форумной ошибкой.

 

Только теперь в индексе все равно будет эта страничка, потому как сервер отдает - HTTP/1.1 200 OK. А надо HTTP/1.1 404 Not Found.

 

У себя (но у меня ipb 2.3.х) решил так. Ищем в файлах /sources/action_public/topics.php и /sources/action_public/forums.php строчки

 

$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'is_broken_link') );

 

и выше добавляем

 

header("HTTP/1.1 404 Not Found");

 

теперь бот понимает, что такой странички нет и не должен включать ее в индекс

 

 

 

В 3 линейке, думаю, можно по аналогии проблему решить.

Опубликовано:
В 3 линейке, думаю, можно по аналогии проблему решить.

В третьей линейки отдача кодов уже встроено по умолчанию.

 

У себя (но у меня ipb 2.3.х) решил так. Ищем в файлах /sources/action_public/topics.php и /sources/action_public/forums.php строчки

Так как и в том и в другом случае используется метод метод Error класса ipsclass, можно было сделать проще, и сделать отдачу статуса в этом методе.

А если делать по аналогии с 3x добавить дополнительный входящий параметр в Error c кодом статуса, и добавить где вызывается Error нужные статусы.

  • 1 месяц спустя...
Опубликовано:

Они же и так перенаправляются.

Перенаправляются только несуществующие файлы. Параметры (QUERY STRING) не учитываются, а IPB работает именно через параметры.

Т.е. физически /index.php?showtopic=99999 сервером будет отдаваться код 200, так как файл index.php существует, хотя самой темы showtopic=99999 на форуме нету (в тройке теперь уже отдается 404 код).

Опубликовано:

В Новом IP.Content можно делать 404 страницу, но google ее не понимает.

 

Когда мы проверили несколько URL из вашего файла Sitemap, то обнаружили, что роботу Google не удалось открыть некоторые URL из-за ошибки статуса HTTP. Все доступные URL будут по-прежнему отправляться.

 

Sitemap: сайт.ru/forums/index.php?app=core&module=global&section=sitemap&sitemap=sitemap_core_content_pages.xml.gz

Ошибка HTTP: 404

URL: сайт.ру/404.html

  • 4 месяца спустя...
Опубликовано:

проблема 1 в 1.

только форум 3.х

 

есть решение под мою версию?

Создайте аккаунт или войдите в него для комментирования

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.