Одно из того что мне не нравилось в Joomle, это ссылки которое она генерила на свой контент, даже встроенный SEF (дальше ЧПУ (Человеко Понятные Урлы) ), не очень спасал дело. Ссылки на раздел с новостями по-умолчанию:
http://localhost/index.php?option=com_content&task=section&id=1&Itemid=2
с первого раза такой адрес тяжело запомнить :)
Если включить встроенные возможности SEF, то адрес выглядит короче и смотреться немного лучше, но он не очень понятный:
http://localhost/content/section/1/2/
Из всех компонентов для Joomla развивается и активно поддерживается ARTIO JoomSEF. У меня на момент тестирования была версия v2.2.6. В этом посте я опишу основные настройки ARTIO JoomSEF.
После стандартной установки компонента не забудьте переименовать файл htaccess.txt в .htaccess (находиться в папке www вашего сайта). Что бы компонент заговорил на русском скопируйте файл russian.php в wwwadministratorcomponentscom_seflanguage. Файл языка переведен мною, принимается комментарии в сторону его улучшения :).
После всех подготовительных установок можно перейти к настройки компонента. Проверьте включена ли опция Дружественные для поисковых систем URL-ы (SEF) в Глобальных конфигурациях Joomla, закладка SEO. После этого, в настройках компонента, для начальной работы вносим следующие изменения (я предполагаю, что стоит файл перевода, сделанный мною) :
Включено? – Да // Собственно включаем компонент
Отключить создание новых ЧПУ адресов? – Нет // Новые ЧПУ адреса будут создаваться автоматически
Показывать разделы? – Да // Добавление названия раздела (секции) в адрес – для категоризации нового контента.
Показать категории? – Нет // У себя выставил нет, адреса получаются более короткие и названий секций вполне хватает для понимания где мы находимся по адресу ссылки.
Так как JoomSEF по-умолчанию адреса генерит из имени элемента, надо настроить как он будет конвертировать кириллицу в латиницу, содержимое файла sefconvert.txt вставить в поле Замена не-ascii символов.
Правило конвертирования простое : символИсточник|символЗамены
символИсточник – символ который надо заменить
символЗамены – символ на который заменяем
После всех перечисленных выше махинаций :) url получаются примерно такого вида:
http://localhost/novosti/super-puper
что выглядит значительно лучше!
Отдельно хотелось бы отметить опцию Использовать псевдоним? – она позволяет использовать для формирования ЧПУ адресов псевдонимы (alias), которые можно указывать в некоторых компонентах (например, Новости), а не трансляцию самих названий элементов.
Список всех трансляций, из старых адресов в ЧПУ, можно посмотреть и отредактировать в пункте Управление ЧПУ адресами (настройки компонента). После клика на любом из элементов списка, в колонке Адрес ЧПУ, можно подправить сгенерированую ссылку если что-то не нравиться.
Поддержка ЧПУ адресов реализована для большинства компонентов Joomla. Некоторые расширения для JoomSEF поставляются вместе с компонентом или можно дополнительно скачать расширения для VirtueMart, Fireboard, RSGallery, etc.
Хотя не обошлось и без ложки дегтя, для поддержки этих самых ЧПУ в базе данных есть таблица (jos_redirection) в которой однозначно прописано соответствие реального адреса, адресу ЧПУ, что накладывает расходы на дополнительные запросы к БД. Кому-то это может показаться не допустимым расточительством, но это допустимая цена для небольшого сайта, со средней посещаемостью. Для улучшения положения в компоненте существует настраиваемый кэш.
Из глюков было замечено, что не всегда отображается правильный путь (pathway) или не подсвечивается выбранная страница в меню. Связано это с тем, что в таблице соответствий нового адресу старому не правильно указан Itemid (используется для связи с пунктами меню), где-то закрался баг в компоненте … но это легко поправить. Открываем таблицу jos_redirection в phpMyAdmin, находим наш url и в поле Itemid указываем id того пункта меню к которому хотим привязать эту страницу (если такого нет, то можно указать 1 соответствует главной странице). Правильные id пунктов меню можно посмотреть в таблице jos_menu.
Вот и все, что я хотел рассказать вкратце о этом полезном для SEO компоненте.