Плагин RedirectMap
Плагин для тех, кто делал перенос сайта или менял адрес страницы и хочет сохранить вес страницы и пользователей. Суть решения очень проста — организация редиректа 301 со старого адреса на новый.
Код плагина:
global $modx;
$mapChunk = $modx->getChunk($chunk);
$mapLines = explode("\r\n",$mapChunk);
$mapArr = array();
foreach($mapLines as $line) {
list($link,$redirectId) = explode('||',$line);
$mapArr[$link] = $redirectId;
}
$q = $_REQUEST['q'];
if(isset($mapArr[$q])) {
$url = $modx->makeUrl($mapArr[$q]);
$modx->sendRedirect($url,0,'REDIRECT_HEADER','HTTP/1.1 301 Moved Permanently');
exit();
}
Конфигурация:
&chunk=Чанк с картой редиректов;text;КартаРедиректов
Здесь указывается название чанка, где содержится список редиректов.
Событие: OnPageNotFound
Пример чанка:
o-cms-modx.html||12
xarakteristika-modx.html||9
То есть:
— одна строка описывает одно правило
— до разделителя "||" указывается старый URL, после разделителя указывает ID ресурса.