в новом релизе есть засада, связанная с тем, что для несуществующей, ошибочной 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);
}