How to set up rel = & quot; canonical & quot; for a Prestashop site?
-
Website Arthata.by on cms Prestashop 1.5
Task: to register rel = "canonical" tags for pages.
Implemented with code in 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}
Everything works except for one little thing. Website with SSL and links of all kinds https
But for some reason this code generates rel = "canonical" with a link like http
& lt; link rel = "canonical" href = "http://arthata.by/" & gt;
How to fix?JavaScript Anonymous, Jan 10, 2020 -
I would look at the code of the functions getCategoryLink, getProductLink and others. They do not handle SSL work correctly.Anonymous
1 Answers
Your Answer
To place the code, please use CodePen or similar tool. Thanks you!