Наверх

Небольшой плагин для редиректа если страница перенесена

Переношу один сайт на MODX. Решили несколько изменить структуру сайта и некоторые страницы были перенесены на верхний уровень (а некоторые — наоборот внутрь общего контейнера).

Чтобы не составлять вручную списки для редиректов написал небольшой плагинчик, который вычленяет из адреса alias, ищет по нему документ и редиректит на правильный адрес:

<?php
if ($modx->event->name == 'OnPageNotFound') 
    {
        $url = $_SERVER['REQUEST_URI'];
        if (substr($url, -5) == ".html") $url = substr($url, 0, -5);
        if (substr($url, -1) == "/")     $url = substr($url, 0, -1);
        $url = str_replace($modx->getOption("site_url"),"",$url);
        $url_array = explode('/', $url);
        $alias = array_pop($url_array);
        $res = $modx->getObject('modResource', array("alias" => $alias));
        if ($res) $modx->sendRedirect($modx->makeUrl($res->get('id')));
    }

Кстати, с его помощью можно легко перейти на другую схему URL (вложенные или нет) или можно вообще отключить дружественные URL.

UPD. Обновил код. Теперь не страшно, если вдруг переключится значение чекбокса «Контейнер», ну и в случае, если ресурс не найден, нормально покажется 404 ошибка. G+

Оригинал статьи community.modx-cms.ru/blog/tips_and_tricks/9508.html


0 комментариев

    Авторизация

    через сервис Loginza:

    Подписка или RSS

    Буду присылать новые статьи — никакого спама



    Шаблоны MODX

    1 2 Дальше »

    Объектная
    модель
    MODX