Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Fisana

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

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

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

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

 

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

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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


Ссылка на сообщение

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

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение

Тоже такая же проблема, хотел решить её, у меня запрос один на 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.

Поделиться сообщением


Ссылка на сообщение

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

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

Поделиться сообщением


Ссылка на сообщение

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

 

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

 

#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 с форумной ошибкой.

Поделиться сообщением


Ссылка на сообщение

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

Ошибка форума индексируется многократно при любых неправильных внутренних 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>

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

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

Ошибка форума индексируется многократно при любых неправильных внутренних 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 нужные статусы.

Поделиться сообщением


Ссылка на сообщение

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

Перенаправляются только несуществующие файлы. Параметры (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

Поделиться сообщением


Ссылка на сообщение

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

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

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

×
×
  • Создать...