Заметки о решаемых задачах АйТишников

Сделал - запиши. Нашёл - сохрани :)

Прошу прощения за рекламу на сайте. Я постарался сделать это максимально ненавязчиво и по минимуму. При чтении заинтересовавших вас статей она не будет вам мешать.
И если есть возможность поставить мой сайт в исключения у блокировщика рекламы, я буду очень признателен вам.

Устраняем дубли главной страницы в MODX Revolution

Устраняем дубли главной страницы в MODX Revolution

 

 

 

Пришлось делать ЧПУ на уже работающем сайте.
И выявилась проблема: Redirector не обрабатывал правила типа: index.php?id=10 → prajs-list (это пример).

Добавив плагин, код которого ниже, я заставил работать Redirector, а так же закрыл дубль — index.php.

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

<?php 
switch ($modx->event->name) {
    case 'OnHandleRequest':
        if (strpos($_SERVER['REQUEST_URI'],'index.php') !== false && $modx->context->get('key') != 'mgr') {
            if (!empty($_GET['id'])) {
                $id = (int)$_GET['id'];
                if (!$modx->getCount('modResource', array('id' => $id, 'published' => 1, 'deleted' => 0))) {
                    $modx->sendErrorPage();
                } 
            } else {
                $id = $modx->getOption('site_start', null, 1);
            }
            $modx->sendRedirect($modx->makeUrl($id),array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        break;
}

Плагин должен отслеживать событие OnHandleRequest (идем на страницу нашего плагина, во вкладку «Системные события», и ставим на событии галочку).

После создания этого плагина, Redirector заработал как надо.

Плагин увидел тут — modxinfo.ru

 

23 ноября 2017, 00:06    Александр CMS 0    593 0

 

 

 

 



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

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