Главная » Хаки DLE » Хак Закрываем от индексации статьи отправленные на модерацию

Хак Закрываем от индексации статьи отправленные на модерацию

  • Хаки DLE

Хак Закрываем от индексации статьи отправленные на модерацию

В DataLife Engine с новостями отправленными на модерацию наблюдается проблема.

А суть проблемы такова:
Если новость удалена то по стандарту пишет:
Внимание, обнаружена ошибка
К сожалению, данная страница для Вас не доступна: возможно, был изменен ее адрес или она была удалена. Пожалуйста, воспользуйтесь поиском.


Сервер отдаёт код статуса HTTP: "404 Not Found".
Всё норм.

Но если отправить новость на модерацию, то она как и положена уберётся с пользовательской части сайта, по адресу статьи будут писать:
Внимание, обнаружена ошибка
Гости не имеют доступа для просмотра статей из данного раздела.


Тоже вроде всё ок, но есть проблема, сервер отдаёт код статуса HTTP: "200 OK", следовательно эти страницы спокойно входят в индекс поисковых систем, что не есть хорошо.



Решить данную проблему можно двумя способами: чтобы сервер от дал 404 или запретить индексирование данной страницы пока она на модерации.
Установка:
В файле engine/modules/show.full.php
найти:
if( !$news_found AND !$perm ) msgbox( $lang['all_err_1'], "<b>{$user_group[$member_id['user_group']]['group_name']}</b> " . $lang['news_err_28'] );
elseif( !$news_found ) {
@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}


а) делаем чтобы у новостей, находящихся на модерации ответ сервера был не 200, а 404 (реализация Sander-а)
Заменить на:
if( !$news_found AND !$perm ){
@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], "<b>{$user_group[$member_id['user_group']]['group_name']}</b> " . $lang['news_err_28'] );
}elseif( !$news_found ) {
@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}


б) делаем чтобы у новостей, находящихся на модерации выводился метатег robots со значением noindex (реализация Yeti)
Заменить на:
if( !$news_found AND !$perm ){
$disable_index = 1;
msgbox( $lang['all_err_1'], "<b>{$user_group[$member_id['user_group']]['group_name']}</b> " . $lang['news_err_28'] );
}elseif( !$news_found ) {
@header( "HTTP/1.0 404 Not Found" );
msgbox( $lang['all_err_1'], $lang['news_err_12'] );
}




Версия DLE: 9.7 и выше
Авторы: Sander(nfhelp.ru) и Yeti(dlepro.ru)
Проблему нашёл ov3rdoc

источник: dle-faq.ru

Ключевые слова по теме Хак Закрываем от индексации статьи отправленные на модерацию: ответ сервера, запрещаем индексацию, новость на модерации, Yeti, Sander, хак для DLE