Избавляемся от дублей PrestaShop, пагинация и сортировка

Thanks is it fine like that:
Код:
        {if $page_name == 'index'}
        <link rel="canonical" href="{$base_dir_ssl}" />
        {elseif $page_name == 'product'}
        <link rel="canonical" href="{$request_uri}" />
        {elseif $page_name == 'module-prestablog-blog'}
        <link rel="canonical" href="{$request_uri}" />
        {elseif $page_name == 'category'}
        <link rel="canonical" href="{$request_uri}" />
        {else}
        <link rel="canonical"
        href="/{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}/" />
        {/if}

I added quotes to the index also, is it correct like that?

And it is working perfectly fine with or without the quotes also.
 
{$request_uri} - the variable will show the entire URL.
Example page url: Для просмотра ссылки Войди или Зарегистрируйся
$request_uri = /categoryID_category-name.html?p=5 --> and it is not canonical url
Use $request_uri isn't correct. I do not know the correct way to show canonical url :(
 
It is for all pages I don't need canonical tag, like cms pages, order page, etc.

Basically I need canonical tag for all those pages which have pagination, to avoid duplicate content.
I added additionally the prestablog module by using {$page_name} to view its name, because it was using the request_uri and was pointing always to the /blog URL, avoid indexing of all other blog pages.

I don't know if I'm missing something ... maybe I am.
 
если времени нет на ручную правку, то на PS 1.7 можно так избавиться от дублей титлов и мета-описаний:

в файле:
/themes/warehouse/templates/_partials/head.tpl

правим блок на:
Код:
<title>{block name='head_seo_title'}{$page.meta.title} | ShortNameOfYourShop{if $smarty.get.p and $smarty.get.p!=1} - {$smarty.get.p}{elseif $smarty.get.page and $smarty.get.page!=1} - {$smarty.get.page}{/if}{/block}</title>
<meta name="description" content="{block name='head_seo_description'}{$page.meta.description}{if $smarty.get.p and $smarty.get.p!=1} - {$smarty.get.p}{elseif $smarty.get.page and $smarty.get.page!=1} - {$smarty.get.page}{/if}{/block}">

А не подскажите как скрыть показ описания категории на страницах КРОМЕ первой, когда еще и применяется blocklayered (для Prestashop 1.6.1.20)??)

Для страниц без blocklayered - все просто:
{if $p == 1}
<div class="rte">{$category->description}</div>
{/if}

А вот как обойти динамическое формирование страницы с blocklayered и его урлом с #/page-2
Думаю как бы подвязать вывод описания к пагинации из pagination.tpl... но пока ничего не получается((

Нашел Для просмотра ссылки Войди или Зарегистрируйся... но скорее всего для Prestashop 1.6.1.20 оно не заработает((

Подскажите пожалуйста, может вы с такой проблемой сталкивались?)
Спасибо.
 
А не подскажите как скрыть показ описания категории на страницах КРОМЕ первой, когда еще и применяется blocklayered (для Prestashop 1.6.1.20)??)

Для страниц без blocklayered - все просто:
{if $p == 1}
<div class="rte">{$category->description}</div>
{/if}

А вот как обойти динамическое формирование страницы с blocklayered и его урлом с #/page-2
Думаю как бы подвязать вывод описания к пагинации из pagination.tpl... но пока ничего не получается((

Нашел Для просмотра ссылки Войди или Зарегистрируйся... но скорее всего для Prestashop 1.6.1.20 оно не заработает((

Подскажите пожалуйста, может вы с такой проблемой сталкивались?)
Спасибо.

#/page-2 - это не проблема
там и должно быть описание - так как это для юзеров

а для роботов выше указанных хак работает - так как роботы вторую страницу видят как ?p=2 и т.п.
 
Что то непонятно как он работает и как его настраивать
Модуль добавляет в html-код теги rel="canonical" и rel="next" / rel="prev" на страничках пагинации.
Модуль не имеет настроек, после его установки он сам уже начинает выполнять свою работу
 
Подскажите пожалуйста решение для 1.4 версии а так же для 1.6
Либо модулями
не могу никак найти :(
 
Сам себе и отвечаю!
Если кому нужно то вот решение для 1.4 версии:
В header.tpl
Сразу после
<meta name="robots" content="{if isset($nobots)}no{/if}index,follow" />
и перед
<link rel="icon" type="image/vnd.microsoft.icon" href="{$img_ps_dir}favicon.ico?{$img_update_time}" />
Ил по другому говоря, между ними
добавь это

{if $page_name == 'index' or $page_name == 'search'}
<link rel="canonical" href="{$base_dir_ssl}" />
{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_ssl}{$request_uri|substr:1|regex_replace:'/\/(.*)/':''|regex_replace:'/\?(.*)/':''}" />
{else}
<link rel="canonical" href="{$base_dir_ssl}{$request_uri|substr:1}" />
{/if}
 
Назад
Сверху