Drupal 7 на каждой странице материала выводит shortlink, даже если у ноды есть синоним:
<link rel="shortlink" href="/node/..." />
Избавиться от него можно так:
/**
* Implements hook_html_head_alter().
*/
function THEMENAME_html_head_alter(&$head_elements) {
foreach ($head_elements as $key => $element) {
if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'shortlink') {
unset($head_elements[$key]);
}
}
}
Код добавляется в template.php
. По аналогии можно удалить любой другой элемент из head.
Написанное актуально для
Drupal 7
Похожие записи
- Создание сравнительной таблицы с значениями из EAV Field
- Тест оверхеда Layout Builder и Paragraphs
- Темизация группы чекбоксов или радио-кнопок (#type=>checkboxes, #type=>radios)
- Как в Views программно изменить view mode выводимых сущностей по данным из cookie?
- Добавляем на страницу управления отображением материала поля "Заголовок" и "Дата создания"
Комментарии
Зачем от него избавляться?
Для экономии объема страницы?
у меня с ним вылезали дубли в поисковиках, хотя ссылок вида node/nid нигде не было. да и вообще неоднозначный тег какой-то, мне он не нравится :)
Только наткнувшись на эту статью понял откуда дубли в поисковиках.
зачем он вообще его втыкает ?
Скажите а для чего нужен этот shortlink ?
короткий url текущей страницы
Оставлю памятку как добавлять в заголовок информацию. Например, у меня есть представление новостей и рсс иконка для нее выводится только на странице этого представления. Для исправления этого недочета (нужен вывод иконки и на главной) я написал такую функцию. Пусть и топорно, но не знал как лучше получить рсс:
drupal_add_feed()
А если shortlink будет выдавать тот же урл, что и canonical? Имею виду, в модуле Meta tags есть настройка где можно прописать [current-page:url], и не редактировать template.php. Как воспримут поисковики?
А как ты сделал абсолютный путь для canonical?
Ведь по дефолту в друпале относительный путь, ну, всмысле от корня сайта:
Что-то не могу найти решения. На орге даже issue есть http://drupal.org/node/1104828
На д.ру тоже спрашивают и никто не знает.
Обновление ядра до последней версии не помогло, видать так и не пофиксили.
у меня же шестёрка, каноникал вывожу ручками
Петров Николай, в конфиге basePath какой?
А как избавиться от лишней строки каноникал?
Я как то что-то добавил, чтобы ко всем страницам прибавлялась строка каноникал (каждый документ считался каноническим, т.к. страницы дальше первой в галереи формируемой Media Gallery, не индексировались яндексом по причине не канонической страницы).
В итоге в коде страниц сейчас присутствуют 2 каноникал строчки, первая правильная и вторая от друпала по умолчанию.
Вопрос - как избавиться от второй строчки???
в коде shortlink заменить на canonical
А я наоборот его добавлял.
Global Redirect решает проблему дублей.
Дополнение. Как убрать неправильный каноникал друпала:
этот кусок кода нужно вставить в форыч который написан в данной статье
to PVasili:
> в конфиге basePath какой?
settings.php:
$base_url = 'http://bestmaps.ru';
- это не помогает, с этим параметром каноникал все равно без домена:
/place/ostrov-palma-dzhumeira
а должен быть такой
http://bestmaps.ru/place/ostrov-palma-dzhumeira
А я сейчас поставил модуль Meta Tag (Drupal 7), не настраивал его, и у меня canonical полностью с протоколом доменом и алиасом.
И shortlink тоже полностью с протоколом, доменом и node/nid
Не знаю, может и до установки Meta Tag так было, я не заглядывал в head. Только обновляю сайт до D7.
В Global Meta Tag стоит
Canonical URL: [current-page:url:absolute]
Указанный код для удаления shortlink сработал на отлично, спасибо.
Добавить комментарий