Представляю на суд публики дополнение autoRedirector, которое позволит вам не беспокоиться о том, что иногда адреса страниц меняются.
После установки плагин будет отслеживать изменение адресов страниц и записывать старые адреса в отдельную табличку. Если пользователь перейдет по одной из старых ссылок, плагин перенаправит его на актуальный адрес. В результате пользователь увидит искомую страничку, а не ошибку 404.
Любое автоматически созданное правило редиректа можно отредактировать вручную или удалить через специальный раздел в админке.
Дополнение доступно в репозитории Simple Dream:
store.simpledream.ru/packages/content/autoredirector.html
Кроме того, опубликовал и в официальном репозитории:
modx.com/extras/package/autoredirector
Документация: docs.modx.pro/components/autoredirector
Пробуем, тестируем, если что, в комментариях пишите о багах, ошибках и пр.
autoRedirector — Автоматический редирект при изменении адреса страницы
25 февраля 2014, 17:00
еще раз спасибо.
Кстати, будет ли на этом сайте донэйт, как на безумкине?
Донейт в ближайшее время вряд ли будет. Я еще не так активно развиваю сообщество.
Хотите отблагодарить, делитесь статьями с моего сайта у себя в блоге, в твиттере, да хоть в контакте))(ссылки в футере)
Есть несколько предложений/замечаний (не считайте это придирками). Собственно пользовался до этого Redirector'ом, но в последних версиях какой-то баг появился — редиректы сами собой добавляются без моего участия, и перестала показываться 404 страница, всегда редирект на какой-то ресурс. Но это все не важно. Функционал там был полезный:
— проверка добавляемого редиректа, т.е. если адрес уже ссылается на какой-то ресурс, то при добавлении того же адреса выводится ошибка (очень полезно при ручном добавлении)
— отключение определенных редиректов, не удаление, а именно отключение.
Вот эти приятности и хотелось бы увидеть в новых версиях.
P.S. Это не критика, это предложения по развитию))
Я думаю, можно написать импорт, но у меня готового кода нет и я такой импорт не встречал, к сожалению.
Ошибка возникает при сохранении тех документов, у которых «Тип ресурса» установлен в нестандартное значение. Например, «Товар», и соответственно $class_key=='ShopmodxResourceProduct'.
Вместо переменной $resource, есть $shopmodxresourceproduct.
После отключения плагина, сохранение работает нормально.
Можно ли добавить редирект страниц с .html на страницы без расширения? (на старой версии сайта было расширение, теперь убрал, а страницы в поиске висят пока с расширением) И аналогично слеши в конце адресов убирать. (Было: site.ru/page/ Стало: site.ru/page)
Но вы можете сами написать плагин, который будет делать редирект, если найдет html в URL
Спасибо за дополнение, выручает.
Обнаружился у меня на сайте баг, когда копируешь ресурс то создаётся правило с нового ресурса на первоисточник.
помогите разобраться
Сейчас потестировал, у меня такого не наблюдается. Попробуйте поотключать другие плагины и проверить, повторяется ли этот баг. Возможно, есть какой-то конфликт плагинов…
Если в урле есть гет-параметры редирект не отрабатывает и хотелось бы чтобы они переносились
site.ru/old_url/ — отрабатывает
site.ru/old_url/?utm_source=yandex — не отрабатывает
site.ru/new_url/?utm_source=yandex — сохраняем параметры
Спасибо за дополнение, выручает, но Баг так и не устранён, когда копируешь ресурс то создаётся правило с нового ресурса на первоисточник после того как нажать на кнопку сохранить в новом ресурсе. Проверил на 5 разных сайтах (могу дать доступ).
3 языка через Babel — соответственно через контексты. Контекст web работает с плагином на отлично. А вот для других контекстов правило создает, но оно не работает. Кто-то знает куда смотреть?
Если в правило вручную прописать перед ссылкой название контекста тогда работает. Пример: en/kontaktyi.html
Но не хотелось бы что-то делать вручную, тем более что плагин называется autoRedirector. )
Никто с таким не сталкивался?
Вот пример, я правил руками и так работает:
c2n.me/3JjvgAG
Если получится сделать скину Вам код )
После переноса старого сайта, в поиске остались адреса. Попытался настроить редиректы и вот, не работает (
Когда создаешь правило, то контекст заполнен joxi.ru/Grqel3NfNDaxZr
А когда второй раз создаешь правило, то контекст уже пустой, надо постоянно копировать слово web joxi.ru/vAWYWgwIkZWyem
Вот так вот :)
На сайте использую Удалить index из URL ресурсов, дочерних главной, при сохранении ресурса, в autoRedirector добавляется правило с параметром URI index/… При копировании и переходе по такой ссылке, иногда выкидывает на 404 страницу. После удаления правила, при повторном сохранении в правиле уже будет index/index/… Как можно исправить такое?
создастся правило — index/texnicheskie-gazyi-i-gazovyie-smesi/uslugi/, а такого url не существует и по нему ни кто не придет. Получается надо изменить в плагине autoRedirector, что бы вырезало index/ из url при сохранении правила?
Разъясните пожалуйста как с данным плагином можно настроить мультидоменность на сайте modx.
Например чтобы обычная страница site.ru/page открывалась на page.site.ru
При версии php выше чем 7.4 (т.е. тестировал на 8.0 и 8.1)
Не позволяет сохранять ресурсы объявленные, как родительские категории.
При отключении autoRedirect все становится доступным для сохранения.
Либо нужно отвязать все дочерние ресурсы, тогда можно сохранить изменения на странице, т.е. когда страница перестает быть родительской — проблем нет.
Будет ли какое-то решение в ближайшее время?
Данные моего сервера php8.1.2 / MySQL 8.0.27 / MODX Revo 2.8.3-pl
Илья, спасибо за чудесное расширение.
Обнаружил вот какую особенность: если в настройках сайта задана страница для несуществующей страницы (404), то редирект не отрабатывает, а показывает страницу 404. Есть ли возможность сделать так, что б на заданную в настройках страницу 404 перенаправляло только в случае, если нет правила для autoRedirector'a?