301 редирект в MODx Revolution
В данной заметке я расскажу что делать, если вдруг вы решили изменить структуру своего сайта и хотите настроить редиректы старым адресам, чтобы не ломать внешние ссылки на ваш ресурс.
Мне пришлось озадачиться этим вопросом в тот момент, когда я все же решил перейти с самописной системой архивов на расширение Archivist, а заодно изменить структуру сайта таким образом, чтобы разделить записи в блоге в контейнеры по годам,
Раньше все блогозаписи были дочерними документами контейнера Блог и поэтому имели адреса вида blog/
. При создании же дополнительных контейнеров для годов и перемещении в них документов их URL изменился на blog/year/
. В связи с этим все внешние ссылки на мои статьи становились нерабочими, что, конечно же, весьма печально. Для решения этой проблемы существует прекрасная вещь — код ответа сервера 301 Moved Permanently, известный в народе как
Работает довольно просто. После установки через менеджер пакетов в меню Компоненты главного меню появляется пункт Redirector, при нажатии на который появляется таблица созданных редиректов. Реализован компонент через плагин, который срабатывает на системное событие OnPageNotFound и пытается найти запрашиваемый URL в. своей таблице. Если таковой
Единственный момент, с которым я столкнулся в начале — это формат записи URL. В самом начале я использовал адреса вида /blog/blog-page-alias.html
, и они не работали. Потом попробовал писать полные адреса, http://bounz.net/blog/blog-page-alias.html
, но они тоже не работали. После того, как посмотрел в исходный код плагина понял, как следовало записывать адреса: без слеша в начале, blog/blog-page-alias.html
. После этого все заработало.
Теперь внутреняя структура блога меня полностью устраивает, а старые ссылки прекрасно работают.
Быстрых вам редиректов!
Пт, 15.04.2011