Оптимизация DataLife Engine
Запретить новости находящиеся на модерации индексироватся в DLE
Новый веб мастер предлагает нам познакомится с тем что раньше было определить сложно. В этом посте, который будет коротким я расскажу как запретить индексироваться страницам которые находятся на модерации.
В DLE почему то новости которые мы не опубликовали выдает код 200 как ответ сервера на страницу которая как бы не доступна пользователям. И из за этого Яндекс добавляет в индекс страницы как дубль главной.
Ближе к тому как закрыть от индексации неопубликованные новости в DLE:
Файл engine/modules/show.full.php
Находим:
Заменяем:
Если ваш движок все равно выдает ответ сервера 200 попробуйте заменить тоже самое на:
СТАТЬЯ АКТУАЛЬНА только для версии DLE 11,2 и НИЖЕ. НА версии начинающейся с 11,3 уже все нормально! Выдает 403 что по сути правильнее чем выдавать 404.
В DLE почему то новости которые мы не опубликовали выдает код 200 как ответ сервера на страницу которая как бы не доступна пользователям. И из за этого Яндекс добавляет в индекс страницы как дубль главной.
Ближе к тому как закрыть от индексации неопубликованные новости в DLE:
Файл 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'] );
}
Заменяем:
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'] );
}
Если ваш движок все равно выдает ответ сервера 200 попробуйте заменить тоже самое на:
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 11,2 и НИЖЕ. НА версии начинающейся с 11,3 уже все нормально! Выдает 403 что по сути правильнее чем выдавать 404.