301 редиректы в MODX Revo

MODX Revolution

21-09-2015

Варианты создания редиректов в MODX, удобный плагин Redirector
Стандартные простые редиректы в .htaccess в MODX не работают. Работает метод: {ignore}
RewriteRule ^page1.html$ /page2.html [R=301,L] в .htaccess.

Однако в MODX Revo есть очень удобный плагин для создания редиректов., называется Redirector. Использование простейшее: Клик по кнопке «Создать новый редирект» во появившемся окне пишем правило:


Шаблон — "^относительный url старой страницы?$", например ^/old-page/?$
Цель — отностительный адрес новой страницы /new-page.html

Также можно более тонко настраивать, для контекстов и т.д.

Однако в плагине из коробки есть проблема с кириллицей в адресах, в случае если мы делаем редирект со старого кириллического адреса на новый, подхватываться он не будет, решить эту проблему легко можно следующим образом: В дереве ресурсов открываем Элементы -> Плагины -> Redirector и после

if (!empty($baseUrl) && $baseUrl != '/' && $baseUrl != ' ' && $baseUrl != '/' . $modx->context->get('key') . '/') 
{ 
$search = str_replace($baseUrl, '', $search); 
}
Добавляем:
$search = iconv('UTF-8', 'CP1251', rawurldecode($search)); 
$search = mb_convert_encoding($search, 'UTF-8', 'CP1251');
После этого преобразования кириллица в редиректах также будет срабатывать.
Просмотров: 363