[easyRedirects] Еще один компонент для управления редиректами
Привет!
easyRedirects — дополнение для управления редиректами (с возможностью выбора кода ответа из 301, 302, 307, 308) в панели управления сайтами.
Для MODX есть несколько компонентов, которые позволяют из админки управлять редиректами со старых url на новые. Из тех, что знаю я — это Redirector (наверное самый первый компонент, ему 10+ лет точно, но надо сказать, его периодически обновляют), и autoRedirector. Кстати, они поддерживают только 301 редирект, а вот 302 или более свежие 307 и 308 — нет.
При попытке применить их на моем сайте выплыли проблемы:
1. Redirector не позволял создать редирект на произвольный url, он обязательно хотел видеть в качестве цели существующий ресурс. А мне так не нужно было, у меня страницы генерируются своим плагином, обрабатывающим событие OnPageNotFound, т.е. целевого ресурса как такового на сайте нет.
2. autoRedirector больше заточен на отслеживание измененных url, ну и у него та же особенность — конечный url редиректа должен принадлежать существующему ресурсу.
В общем в итоге пара вечеров и готова первая версия easyRedirects. По сути это сильно модифицированный и дополненный Redirector.
Возможности:
modstore.pro/packages/utilities/easyredirects
Ссылка на github:
github.com/createit-ru/easyRedirects
Если вам пригодился компонент, есть желание поблагодарить чашкой кофе — можно сделать это нажав на кнопочку:
Благодарности ускорят внедрение новых функций, увеличат мою мотивацию, заставят меня внимательно прислушиваться к вашим пожеланиям!!!
Обновления (детали доступны в changelog.txt):
28.11.2023 — 1.0.1-pl
19.12.2023 — 1.1.0-pl — выбор кода ответа сервера, улучшена поддержка MODX 3
easyRedirects — дополнение для управления редиректами (с возможностью выбора кода ответа из 301, 302, 307, 308) в панели управления сайтами.
Для MODX есть несколько компонентов, которые позволяют из админки управлять редиректами со старых url на новые. Из тех, что знаю я — это Redirector (наверное самый первый компонент, ему 10+ лет точно, но надо сказать, его периодически обновляют), и autoRedirector. Кстати, они поддерживают только 301 редирект, а вот 302 или более свежие 307 и 308 — нет.
При попытке применить их на моем сайте выплыли проблемы:
1. Redirector не позволял создать редирект на произвольный url, он обязательно хотел видеть в качестве цели существующий ресурс. А мне так не нужно было, у меня страницы генерируются своим плагином, обрабатывающим событие OnPageNotFound, т.е. целевого ресурса как такового на сайте нет.
2. autoRedirector больше заточен на отслеживание измененных url, ну и у него та же особенность — конечный url редиректа должен принадлежать существующему ресурсу.
В общем в итоге пара вечеров и готова первая версия easyRedirects. По сути это сильно модифицированный и дополненный Redirector.
Возможности:
- создание произвольного кол-ва редиректов в адмике;
- создание нового редиректа путем копирования существующего;
- можно задать код ответа сервера (301, 302, 307, 308);
- для редиректа можно указать как просто адрес (напр. catalog/telefony => catalog/phones) так и регулярное выражение с подстановками (напр. ^catalog\/category-(.*)$ => catalog/$1);
- для каждого редиректа считается кол-во срабатываний, дата и время первого и последнего срабатывания;
- можно для каждого редиректа задать метку, чтобы в дальнейшем проще их находить (например, написать «этап 1», «старые редиректы» и т.п.);
- для каждого редиректа в базе есть запись когда и кем он создан или изменен (поля createdon, createdby, updatedon, updatedby);
- есть отслеживание смены url страниц сайта (без учета вложенности правда), см. системную настройку easyredirects_track, работает так же как в компоненте Redirector;
- есть импорт правил из текста в формате csv.
modstore.pro/packages/utilities/easyredirects
Ссылка на github:
github.com/createit-ru/easyRedirects
Если вам пригодился компонент, есть желание поблагодарить чашкой кофе — можно сделать это нажав на кнопочку:
Благодарности ускорят внедрение новых функций, увеличат мою мотивацию, заставят меня внимательно прислушиваться к вашим пожеланиям!!!
Обновления (детали доступны в changelog.txt):
28.11.2023 — 1.0.1-pl
19.12.2023 — 1.1.0-pl — выбор кода ответа сервера, улучшена поддержка MODX 3
Комментарии: 18
Огромное человеческое спасибо ?
Тоже намучился с Redirector, что в итоге пришлось CloudFlare подключать на сайты для нормальных редиректов.
А ещё у Redirector глюк с базой данный и редиректами между контекстами
Донат прилагается ?
Тоже намучился с Redirector, что в итоге пришлось CloudFlare подключать на сайты для нормальных редиректов.
А ещё у Redirector глюк с базой данный и редиректами между контекстами
Донат прилагается ?
Спасибо! Да, я в Redirector что-то не всю логику понял, и возможно что оттуда ко мне тоже глюки переехали…
Проведу еще тесты на срабатывание редиректов, если что поправлю и обновлю компонент.
Правда вот с контекстами вряд ли смогу, т.к. на своих сайтах их не применяю.
Не получится точнее описать, с какими неточностями столкнулись?
Проведу еще тесты на срабатывание редиректов, если что поправлю и обновлю компонент.
Правда вот с контекстами вряд ли смогу, т.к. на своих сайтах их не применяю.
Не получится точнее описать, с какими неточностями столкнулись?
Привет. не пойму как сделать 301 главной страницы на внешний сайт.
Пробую: index ИЛИ / ИЛИ index.html -> modx.pro/components/24389
главную удаляю, но редиректа не происходит
Пробую: index ИЛИ / ИЛИ index.html -> modx.pro/components/24389
главную удаляю, но редиректа не происходит
привет! Конкретно для главной страницы конечно спорный вопрос… я бы через компонент не делал. Обычно такие редиректы нужны когда сайт переезжает на другой адрес. В этом случае рациональнее сделать редирект всего сайта средствами nginx или через htaccess, смотря какой сервер.
Дело в том, что у главной страницы uri — index, а url, который открываем в браузере — пустой.
Чтобы компонент смог обработать такой редирект — нужно прям отдельное условие добавить в код…
Дело в том, что у главной страницы uri — index, а url, который открываем в браузере — пустой.
Чтобы компонент смог обработать такой редирект — нужно прям отдельное условие добавить в код…
Буду признателен, если такое условия появится в коде easyRedirects. Для мультиязычных сайтов на разных контекстах — редирект главной большая проблема. Спасибо
Супер, если появится правило, которое будет редиректить весь контекст на другой контекст. через htaccess этого не сделать — приходится клаудфраер подключать…
не совсем я понял суть задачи…
но почему бы не сделать через регулярное выражение?
но почему бы не сделать через регулярное выражение?
отсюда: ^en/(.*)$
сюда: ru/$1
но естественно, что это сработает, только если все страницы сайт.ру/en/ не будут опубликованы, т.к. компонент работает через плагин на OnPageNotFound
Приветствую! Было бы круто, если бы компонент автоматически проставлял 301 редирект при смене адреса страницы, товара… Я не смог найти компонент, который бы автоматически их ставил, если товары выгружаются из 1с или из файла xls. Речь идет о msImportExport и о mSync
И Redirector, и autoRedirector и easyRedirects имеют в своём составе плагин, который висит на событии OnDocFormSave и отслеживают изменение url ресурса.
Но есть одно но) Все компоненты для того чтобы узнать какой был старый url у страницы — они его сохраняют где-то заранее, к примеру на событии OnBeforeDocFormSave (в properties ресурса) или OnDocFormRender (в сессию). И только потом на OnDocFormSave уже идет сравнение старого адреса и нового и при необходимости создание редиректа.
Ну в общем то любой компонент для импорта событие OnDocFormRender точно не вызовет.
В принципе OnBeforeDocFormSave в autoRedirector вроде как должен срабатывать, если msImportExport обновляет товар через процессор resource/update… но не знаю, не разбирался.
В общем для них лучше свой плагин написать с созданием правил редиректа (благо там и нужно то заполнить 2 поля минимально), насколько помню у того же msImportExport есть событие, куда приходят данные при обновлении товара.
Но есть одно но) Все компоненты для того чтобы узнать какой был старый url у страницы — они его сохраняют где-то заранее, к примеру на событии OnBeforeDocFormSave (в properties ресурса) или OnDocFormRender (в сессию). И только потом на OnDocFormSave уже идет сравнение старого адреса и нового и при необходимости создание редиректа.
Ну в общем то любой компонент для импорта событие OnDocFormRender точно не вызовет.
В принципе OnBeforeDocFormSave в autoRedirector вроде как должен срабатывать, если msImportExport обновляет товар через процессор resource/update… но не знаю, не разбирался.
В общем для них лучше свой плагин написать с созданием правил редиректа (благо там и нужно то заполнить 2 поля минимально), насколько помню у того же msImportExport есть событие, куда приходят данные при обновлении товара.
Спасибо за развернутый ответ)
При попытке применить их на моем сайте выплыли проблемы:Есть ещё Seo Suite. Не знаю, есть ли там такие проблемы
1. Redirector не позволял создать редирект на произвольный url, он обязательно хотел видеть в качестве цели существующий ресурс. А мне так не нужно было, у меня страницы генерируются своим плагином, обрабатывающим событие OnPageNotFound, т.е. целевого ресурса как такового на сайте нет.
2. autoRedirector больше заточен на отслеживание измененных url, ну и у него та же особенность — конечный url редиректа должен принадлежать существующему ресурсу.
Алексей, будет супер, если поиск по полю метка тоже будет работать
Привет, да, поправлю, сам заметил
Готово! Обновись, проверь работу!
Отлично. Спасибо ?
Было бы супер добавить кнопку копировать редирект, чтобы не заполнять каждый раз заново
Было бы супер добавить кнопку копировать редирект, чтобы не заполнять каждый раз заново
Можно попробовать реализовать… запишем.
Рад активному пользователю =)
Рад активному пользователю =)
Сделал, выложил!
Это очень хорошо, спасибо ?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.