Зарубка на память

06.06.2010 0 Comments

Есть у IPB такой прикол — на любой странице форума, включая страницы с ошибками, он отдает заголовок header("HTTP/1.0 200 OK");
header("HTTP/1.1 200 OK");

а сие не есть гуд для поисковой индексации: если у вас сотни удаленных тем, индекс завален сотнями страниц с одним и тем же сообщением об ошибке на разные url. Исправляем сиё недоразумениё. 🙂

Для IPB 2.0.x в functions.php, для IPB 2.3.х — ipsclass.php добавляем переменную класса:
var $change_header = 0;
Затем в ф-цию Error, в самое начало:
$this->change_header = 1;

И далее в class_display.php ищем ф-цию do_headers и заменяем в ней эти строки:
header("HTTP/1.0 200 OK");
header("HTTP/1.1 200 OK");

на следующие:
для IPB 2.3.x:
if($this->ipsclass->change_header)
{
header("HTTP/1.0 404 Not Found");
header("HTTP/1.1 404 Not Found");
}
else
{
header("HTTP/1.0 200 OK");
header("HTTP/1.1 200 OK");
}

для IPB 2.0.х:
if($std->change_header)
{
header("HTTP/1.0 404 Not Found");
header("HTTP/1.1 404 Not Found");
}
else
{
header("HTTP/1.0 200 OK");
header("HTTP/1.1 200 OK");
}

Кроме того, в 2.0.х в эту функцию надо добавить глобальную перепенную $std.

Добавить комментарий