Проблема с id в URL материалов Joomla при обновлении большого старого сайта до Joomla 5
В старых версиях Joomla URL адрес формировался по схеме [id материала + алиас материала]
. Например, 145-my-article-alias
. Однако, старый роутер Joomla был не идеален и плодил дубли страниц, с чем усиленно боролись СЕО специалисты с помощью различных плагинов и хаков ядра CMS.
Начиная с версии Joomla 3.8 в ядро был включён новый роутер, лишенный этих недостатков. Так же его отличало то, что он убирал id статьи из URL адреса. А это в свою очередь приводило к проблемам на больших сайтах, так как у них уже много страниц было в индексе поисковых систем. Поэтому, даже при обновлении сайта на Joomla 4 и Joomla 5 многие старые сайты вынуждены были оставлять включённым старый роутер.
Решение проблемы довольно простое: нужно сохранить id материалов Joomla в алиасы и после этого отключить старый роутер Joomla. В базе данных к каждому алиасу спереди добавляется id статьи, что приводит его к виду, который формировал старый роутер Joomla и таким образом URL страницы будет сохранён, но под капотом Joomla будет работать уже новый роутер.
Для этой задачи был написан плагин Console - Save old articles aliases.
Также поможет в работе с SSH и Joomla статья Joomla 4: мощь CLI приложений.