Задать вопрос

Как настроить rel="canonical" для сайта на Prestashop?

Сайт Arthata.by на cms Prestashop 1.5
Задача: прописать для страниц теги rel="canonical"

Реализовал с помощью кода в header.tpl:
{if $page_name == 'category'}
		<link rel="canonical" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}" />    
		{if $languages|@count > 1}{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCategoryLink($smarty.get.id_category, null, $lang.id_lang,null,null )}" />{/foreach}{/if}
		{if $start!=$stop}{if $p != 1 && $p_previous != 1}{assign var='p_previous' value=$p-1}
		<link rel="prev" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}{$link->goPage($requestPage, $p_previous)}" />{/if}
		{if $pages_nb > 1 AND $p != $pages_nb}{assign var='p_next' value=$p+1}
		<link rel="next" href="{$link->getCategoryLink($smarty.get.id_category, null, $id_lang,null,null )}{$link->goPage($requestPage, $p_next)}" />{/if}{/if}
		{/if}
		{if $page_name == 'product'}    
		<link rel="canonical" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $id_lang, null, 0, false)}" />    
		{if $languages|@count > 1}{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getProductLink($smarty.get.id_product, null, null, null, $lang.id_lang, null, 0, false)}" />{/foreach}{/if} 
		{/if}
		{if $page_name == 'cms' && $smarty.get.id_cms > 0}
		<link rel="canonical" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $id_lang)}" />
		{if $languages|@count > 1}{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getCMSLink($smarty.get.id_cms, null, false, $lang.id_lang)}" />{/foreach}{/if}
		{/if}
		{if $page_name == 'manufacturer' && $smarty.get.id_manufacturer > 0}
		<link rel="canonical" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $id_lang)}" />    
		{if $languages|@count > 1}{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getManufacturerLink($smarty.get.id_manufacturer, null, $lang.id_lang)}" />{/foreach}{/if}
		{/if}
		{if $page_name == 'manufacturer' && !isset($smarty.get.id_manufacturer)}
		<link rel="canonical" href="{$link->getPageLink('manufacturer', 'true', $id_lang)}" />    
		{if $languages|@count > 1}{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getPageLink('manufacturer', 'true', $lang.id_lang)}" />{/foreach}{/if}
		{/if}
		{if $page_name == 'index'}
		<link rel="canonical" href="{$link->getPageLink('index', 'true', $id_lang)}" />    
		{if $languages|@count > 1}{foreach $languages as $lang}<link rel="alternate" hreflang="{$lang.iso_code}" href="{$link->getPageLink('index', 'true', $lang.id_lang)}" />{/foreach}{/if}
		{/if}


Все работает за исключением одной мелочи. Сайт с SSL и ссылки все вида https
Но почему-то этот код генерирует rel="canonical" с ссылкой вида http

<link rel="canonical" href="http://arthata.by/">
Как исправить?
  • Вопрос задан
  • 432 просмотра
Подписаться 1 Средний Комментировать
Ответ пользователя ITLandgraf К ответам на вопрос (2)
@ITLandgraf
vk.com/digital_workroom
Я бы посмотрел код функций getCategoryLink, getProductLink и других. Они некорректно обрабатывают работу с SSL.
Ответ написан
Комментировать