Русская поддержка интернет-магазина PrestaShop
русская поддержка PrestaShop.
Регистрация
Забыли пароль?
Главная
Возможности
Демо
Скачать
Каталог магазинов
Форум
Модули и шаблоны
Администрирование
Реклама и маркетинг
Аналитика и статистика
Оплата и платежные системы
Управление контентом
Экспорт
Фронт-офис
Локализация
Торговые площадки
Управление товарами
Средства миграции
Оформление заказа
Поиск и фильтры
Доставка и логистика
Слайд-шоу
Социальные сети
Модификаторы
Шаблоны PrestaShop
Работа
Главная
Форум
Общие форумы (prestashop v1.4.x)
Песочница
canonical - канонические урл
canonical - канонические урл
GrandLunge
Новичок
Сообщений: 5
Регистрация: 28-01-2012
# 1
22-08-2016 04:11
Здравствуйте! хочу поднять один вопрос на обсуждение касательно формирования канонического адреса для карточки товара, при этом карточка товара доступна сразу по нескольким адресам.
Часто встречается примерно следующее
решение проблемы
:
{if $page_name == 'index' or $page_name == 'search'}
<link rel="canonical" href="{$base_dir}" />
{elseif $page_name == 'category' or $page_name == 'best-sales' or $page_name == 'cart' or $page_name == 'discount' or $page_name == 'manufacturer' or $page_name == 'new-products' or $page_name == 'prices-drop'}
<link rel="canonical" href="{$base_dir}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}" />
{else}
<link rel="canonical" href="{$base_dir}{$request_uri|substr:1}" />
{/if}
или вот такой вариант:
{if $page_name == 'product' && isset($product->id)}
<link rel="canonical" href="{$link->getProductLink($product->id)}" />
{elseif $page_name == 'manufacturer' && isset($manufacturer->id)}
<link rel="canonical" href="{$link->getManufacturerLink($manufacturer->id)}" />
{elseif $page_name == 'supplier' && isset($supplier->id)}
<link rel="canonical" href="{$link->getSupplierLink($supplier->id)}" />
{elseif $page_name == 'category' && isset($category->id)}
<link rel="canonical" href="{$link->getCategoryLink($category->id)}" />
{elseif in_array($page_name,$pages_array)}
<link rel="canonical" href="{$link->getPageLink($page_name)}" />
{elseif $page_name == 'cms' && isset($cms->id)}
<link rel="canonical" href="{$link->getCmsLink($cms->id)}" />
{else}
{assign var=amn value=explode("-",$page_name)}
{if strpos($page_name,"module-") !== false && count($amn) == 3}
<link rel="canonical" href="{rtrim($base_dir,'/')}{$request_uri|regex_replace:'/\?(.*)/':''|replace:'index.html':''}" />
{/if}
{/if}
однако при указанном выше условии (когда карточка товара доступна по нескольким адресам) такое решение работает не верно.
к примеру карточка товара доступна по адресам:
http://site.ru/piony/756-buket-binelli.htm
http://site.ru/756-buket-binelli.html
и при таких решениях канонический адрес для страницы
http://site.ru/piony/756-buket-binelli.htm
будет
<link rel="canonical" href="http://site.ru/piony/756-buket-binelli.html" />
а для страницы http://site.ru/756-buket-binelli.html
будет
<link rel="canonical" href="http://site.ru/756-buket-binelli.html" />
что не решает первоначальную задачу для определения канонической страницы.
Соответственно необходим код, который будет в данном случае принудительно указывать единственный канонический адрес (либо через категорию, либо прямой на карточку товара).
Есть кто решил подобную проблему?
GrandLunge
Новичок
Сообщений: 5
Регистрация: 28-01-2012
# 2
24-08-2016 16:03
неужели ни кто не сталкивался с этим? ни кто не знает как это исправить?
AK-74
Cпециалист
Сообщений: 115
Регистрация: 01-02-2016
# 3
29-08-2016 00:36
Так canonical указывает поисковику на базовую страницу для индексации, но эта страница доступна по нескольким УРЛам. Собственно canonical и нужен чтобы поисковик не путался при индексации и не дублировал обработку одного и того же контента. Ошибкой было бы, если бы одна и та же страница при заходе по разным урлам имела разные значения canonical.
На Главную форума
Найти
FaQ
Панель управления
Кто он-лайн
Общие форумы (prestashop v1.7.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.6.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.5.x)
-- Общий форум
Общие форумы (prestashop v1.4.x)
-- Новости и объявления
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
-- Песочница
-- Прочее
Общие форумы (prestashop v1.3.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
---- Платные модули и хаки
-- Песочница
Другое
-- Корзина
---- Хостинг
---- Каталог магазинов
---- Общий форум
---- Прием багов