We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22301
    • 1,084 Posts
    в новом релизе есть засада, связанная с тем, что для несуществующей, ошибочной 404-ой, страницы машинка не выдаёт 404-ый статус в заголовке header, в результате чего поисковики её индексируют, так как сервер отдаёт 200-ый статус. индексируют несуществующую страницу в том плане, что в MODxCMS всё грамотно -- адрес страницы не меняется, хотя выводится та страница, которая указана в настройках как ошибочная.

    над решением проблемы денно и ношно бьётся vbrilon из Далласа, решая попутно возникающие проблемы с безопасностью, за что ему ОГРОМНОЕ спасибо.

    yentsun как-то кинул идею, не знаю, реализовал ли, но я попробовал сделать следующие:

    1. создал плагин 404
    2. вставил в него код:
    $header = "HTTP/1.0 404 Not Found\n";
    header($header);
    

    3. на странице System Events для плагина я выделили Parser Service Events->OnPageNotFound
    4. отрефрешил сайт.

    вроде, работает. кому не трудно и важно, протестируйте плагин.
    да, заголовки можно просматривать сдесь: http://seolab.ru/add/header.htm

    но и здесь засада, почему и вроде. статус страницы выдаётся 404-ым не всегда. может, появятся или есть у кого какие соображения по этому поводу? возможно, надо добавить каких событий? и я не знаю, в результате работы такого плагина, происходит ли вторичная отправка header’а или нет, я тупой в этом плане, но никаких ошибок ни парсер, ни хостинг не выдают.

    upd

    есть ещё один выход. если ваш хостинг нормально настроен, а не какая-нить агава, то можно попробовать в настройках машинки поле, в котором указывается id’ишник ошибочной страницы, оставить пустым. если не происходит никакого редиректа, прогружается обыкновенная пустая страница, значит, всё путём, а 404-ый статус сервак ужо выдал. надо посмотреть в таком случае, есть ли возможность настроить на хостинге вид 404-ой страницы.

    я не сумасшедший, если чё:) вся заморочка от того, что в большинстве случаев на modx собираются не абсолютное новые сайты, а модернизируются старые, слепленные на основе каких-нить мегавольтных коммерческих CMS. и очень трудно вынуть с поиска весь старый сайт, особенно, если про дружественные урлы никто не думал, и нет возможности черз robots.txt закрыть индексацию.

    UPD
    if (($modx->documentIdentifier == $modx->config['error_page'])||($modx->Event=='OnPageNotFound')) {
                     $header = "HTTP/1.0 404 Not Found\n";
                     header($header);
    }
    

      [img]http://jurist-info.ru/pic/rrr.jpg[/img]

      Безжалостный пияр!
      Artima -- неуч!
      Осторожно: преступная локализация -- modx-cms.ru
      Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

      Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
      • 33114
      • 518 Posts
      мне кажется еще надо прикрутить onWebPagePrerender... но вот как дать понять плагину что только на странице ошибке это делать, этого еще не придумал
        http://modx.ru - российская поддержка MODx
        http://newscup.ru - экспериментальный проект
        http://yentsun.com - персональный сайт
        • 22301
        • 1,084 Posts
        ага, в этом-то и проблема, потому что, вогнав по этому событию, ты запускаешь, если я праильно понимаю, тот же маханизм, который, почему-то игнорирует условие в парсере, 400 какая-то позиция, то, есть по факту, надо и в этот плагин вставить проверку на условие, (error page или нет) .. заморочусь сёдня к вечеру, после сна:) проблем насущная. надо только сделать запрос с таблице с ситемными настройками, заполучить id ошибочной страницы и сравнить с documentidentifier. не думаю, что это сложно:) а ща, не мудря, тупа вобью в проверке id ручками:)

        upd: Эврика, работает:) ща, надо найти, где я это публиканул для иностранных друзей:)
          [img]http://jurist-info.ru/pic/rrr.jpg[/img]

          Безжалостный пияр!
          Artima -- неуч!
          Осторожно: преступная локализация -- modx-cms.ru
          Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

          Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun