Пришлось делать ЧПУ на уже работающем сайте.
И выявилась проблема: 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
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()