Задача
Использовать на сайте canonical, next, prev.
Модуль Metatag
Сложилось так, что я использую модуль metatag для вывода canonical, shortlink. До недавнего времени я был рад и доволен. Но тут я решил использую этот модуль чтобы еще вывести next, prev и понеслось.
Проблема №1
Для получения значений он использует токены. По-умолчанию используются такие настройки:
canonical = [current-page:url:absolute]
shortlink = [current-page:url:unaliased]
В итоге я заметил, что у меня не индексируются views с пагинацией. То есть $_GET['page'] вообще игнорируется, и страницы дальше первой не индексируются.
url | canonical |
---|---|
/myview | /myview |
/myview?page=1 | /myview |
/myview?page=2 | /myview |
Понятное дело, что в этом виноват не модуль а токен [current-page:url:absolute].
Проблема №2
У модуля metatag есть одна клёвая фича.
Если добавлять на страницу в head тег link используя drupal_add_html_head_link()
, то если metatag реализует такой rel, то он его благополучно удалит, даже если metatag взамен ничего не выводит (metatag_html_head_alter()).
Из-за этого отказался работать модуль Next Prev Links.
Заключение
Поделитесь вашим подходом для реализации canonical, next, prev.
Ответы
canonical добавляет global redirect есть у него опция
а так я никогда не занимался.
next prev - это уже ссылки в области тела?
тогда для этого есть несколько модулей самый простой https://www.drupal.org/project/flippy
подробный обзор http://tlito.ru/node/124
Модуль Metatag нынче действительно шибко монструозен
наверное имеет смысл взять старую версию трёхлетей давности и обрезать ей все яйцы
давно об этом думал
canonical можно тупо вывести <?php print $path=$_SERVER['REQUEST_URI'];?>
next, prev - по семантике - всегда вручную
можно подробнее.