tagLister ЧПУ (Friendly URL`s)
- 01.10.2012
- MODx, SEO, TagLister, Инструкции
Эта небольшая заметка расскажет о том, как подружить tagLister и Friendy URL`s в MODX Revolution.
tagLister - отлично дополнение для MODX, которое позволяет просто работать с системой тегов на вашем сайте, но и оно не без изъянов.
Как известно, MODX Revolution отлично работает с "красивыми" адресами страниц (Friendly URL), генерируя подобные адреса страниц /page/anotherpage/.
Но tagLister выбиваются из общего ряда, так как он формируют url вида /tags/?tag=мой тег&key=blogTags
Попробуем это исправить.
Задача
Заменить адреса страниц с тегами вида
/tags/?tag=мой тег&key=blogTags
на
/tags/мой тег/
Решение поставленной задачи разбивается на 2 этапа:
- Сгенерировать верные URL
- Добится, что бы открывалась нужная страница по этим адресам.
Этап 1. Генерируем красивые URL в tagLister
Компонент tagLister содержит 3 сниппета: tagLister (облако тегов), toLinks (список тегов документа), getResourcesTag (выборка документов, имеющих заданный тег).
Чтобы сгенерировать красивые URL в сниппетах tagLister и toLink, необходимо переопределить стандартный шаблон, задаваемый параметром tpl.
Для tagLister необходимо создать чанк с кодом, приведенным ниже, и указать этот чанк в параметре tpl в вызове сниппета:
<li> <a href="[[~[[+target]]]][[+tag]]/">[[+tag]]</a> ([[+count]]) </li>
Для toLinks выполняется тоже действие, только код чанка другой:
<a href="[[~95]][[+item]]/" class="[[+cls]]">[[+item]]</a>
Обратите внимание, что toLinks не устанавливает плейсхолдет target, поэтому нам приходится напрямую указать id ресурса, на котором будут выводится документы с нашим тегом, в примере выше это 95.
После внесенных изменений вы должны увидеть, что и tagLister и toLink генерируют уже нужные нам адреса страниц.
Этап 2. Изменения в .htaccess
Теперь необходимо внести правки в файл .htaccess, что бы сгенерированные адреса заработали как и ранее.
Добавьте эту строку
RewriteRule ^tags/([^/]*)/$ /tags/?tag=$1&key=blogTags [L]
в файл .htaccess вашего сайта сразу после строк
RewriteEngine On RewriteBase /
Это правило преобразует адреса страниц к первоначальному виду, а посетитель сайта этого и не увидит.
Дополнительно
Для генерации правил для .htaccess файла удобно пользоваться этим сервисом: http://www.generateit.net/mod-rewrite/
Он позволяет, используя понятный интерфейс, сгенерировать RewriteRule для вашего сайта и вашей ситуации.