Редиректы с /index.php?id=* на ссылки чпу

04 декабря 2015, 18:26

Недавно обнаружился при неприятнейший баг, связанный с работой MODX Revo 2.4 и выше. Появилась проблема с дублями страниц в поисковиках, если включено ЧПУ. Начали проседать позиции, так как из-за дублей ПС считал исходную страницу не уникальной. Создаём плагин с названием скажем Redirect и вешаем на него событие OnHandleRequest.

<?php 
    if ($modx->event->name != "OnHandleRequest" || $modx->context->key == 'mgr') {
        return;
    }

    if ($_SERVER['REQUEST_URI'] != '/') {
        $uri = strtok(substr($_SERVER['REQUEST_URI'], 1), '?');

        if ($uri == 'index.php') {
            $uri = intval(str_replace('/index.php?id=', '', $_SERVER['REQUEST_URI']));
            //не уверен, нужна ли здесь проверка на наличие ресурса, т.к. в случае отсутствия оного, событие должно перехватить OnPageNotFound

            if(empty($uri)) {
                $url = 1;
            }

            $modx->sendRedirect($modx->makeUrl($uri));
        }
    }
SEQUEL.ONE
1    1812    0
+1

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.