Last active
March 6, 2019 00:46
-
-
Save andronex/e070364f4c4c52af3f8d to your computer and use it in GitHub Desktop.
Плагин для редиректа со старых URL на новые в MODX Revo и плагин для редиректа на URL с закрывающим слэшем для контейнеров.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Вешаем плагин на OnWebPagePrerender | |
* Нужен для редиректа для контейнеров (ресурсов с isfolder=1) на URL с закрывающим слэшем, | |
* если они открыты без закрывающего слэша. | |
* Т.е. плагин всегда добавляет для контейнеров закрывающий слэш. | |
* Корректно обрабатывает передаваемые в GET запросе параметры - в случае редиректа в новом | |
* URL параметры тоже будут добавлены. | |
*/ | |
$redir301mov = array('responseCode' => 'HTTP/1.1 301 Moved Permanently'); | |
switch ($modx->event->name) { | |
case 'OnWebPagePrerender': | |
$get_url = parse_url($_SERVER['REQUEST_URI']); | |
if($modx->resource->isfolder && !preg_match("/\/$/",$get_url['path'])) { | |
$url = (isset($get_url['query'])) ? $modx->makeUrl($modx->resource->id, '', $get_url['query']) : $modx->makeUrl($modx->resource->id); | |
$modx->sendRedirect($url, $redir301mov); | |
} | |
break; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Вешаем плагин на системное событие OnHandleRequest | |
* Название плагина любое | |
* Нужен для перенаправления юзеров со старых страниц на новые или при изменении URL страницы, | |
* для склейки страниц в ПС | |
* @author Andrey aka andronex <i.modx(at)ya.ru> | |
*/ | |
$redir301mov = array('responseCode' => 'HTTP/1.1 301 Moved Permanently'); | |
switch ($modx->event->name) { | |
case 'OnHandleRequest': | |
//$modx->log(modX::LOG_LEVEL_INFO, print_r(parse_url($_SERVER['REQUEST_URI']))); //для отладки | |
$get_url = parse_url($_SERVER['REQUEST_URI']); | |
switch ($get_url['path']) { | |
case '/old-url.html': | |
$new_url = 29; //поменять на ID страницы перенаправления | |
break; | |
case '/old-url-2.html': | |
$new_url = 17; //поменять на ID страницы перенаправления | |
break; | |
} | |
if ($new_url) { | |
$url = (isset($get_url['query'])) ? $modx->makeUrl($new_url, '', $get_url['query']) : $modx->makeUrl($new_url); | |
$modx->sendRedirect($url, $redir301mov); | |
} | |
break; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment