Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Новости, находящиеся на модерации индексируются!

Новости, находящиеся на модерации индексируются!


     19.02.2013    Общие вопросы    2458

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

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

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

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

Собственно вопрос - как сделать у новостей, находящихся на модерации ответ сервера не 200, а 404?

Ответил: Sander


Файл 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'] );
    }


UPD by Yeti:
Для DLE 9.6 и выше.
Найденный код заменить на:
    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'] );
    }

Комментарии пользователей (8)

Yeti
7

14 | 14

Yeti - 21 февраля 2013 10:22 - Юзер

Как вовремя, как раз писал статью о внутренней оптимизации DLE

Yeti
7

14 | 14

Yeti - 21 февраля 2013 10:30 - Юзер

Упс, хотя если задуматься, статья была опубликована затем её не удалили, а отправили на модерацию, значит она вернётся в публикации, может правильнее вывести на ней метатег robots с значением noindex пока она на модерации?
а сделать это просто - вместо @header( "HTTP/1.0 404 Not Found" ); вставить $disable_index = 1;

Zlob
1 | 1

Zlob - 21 февраля 2013 14:42 - Юзер

***Комментарий удален***

ov3rdoc
4 | 1

ov3rdoc - 21 февраля 2013 14:25 - Юзер

Большое спасибо обоим)

StAlKeR-xXl
13 | 4

StAlKeR-xXl - 26 августа 2013 15:21 - Юзер

Все равно отдает "ответ сервера - 200"

coolteams
2

90 | 13

coolteams - 24 декабря 2013 14:42 - Юзер

работает для тех новостей которые уже были на модерации (отдает 404), если их опубликовать то все гуд - 200. Но если добавить новую новость, она уходит в 404 и пофиг опубликована она или нет.

coolteams
2

90 | 13

coolteams - 24 декабря 2013 15:07 - Юзер

сори, хостер менял оборудование.

dj-avtosh
39

1479 | 390

dj-avtosh - 24 декабря 2013 18:08 - шашлычник

Классный хостер, который не уведомляет о проведении технических работ. Еще на стадии аудита обязан уведомить.

skype: elhan.isaev

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 08.07.2014 dimanbmw  Общие вопросы