$APPLICATION->AddHeadS tring("[*]" );
Но я абсолютно не понимаю куда ее вставлять и как правильно прописывать.В шаблон или еще куда-то?Я не знаток php так что прошу объяснить на пальцах
03.10.2012 18:14:53
в <head> вставлять
|
|
|
|
03.10.2012 18:27:26
И что дальше? если бы все так было просто, то я бы не спрашивал. Можно более развернутый ответ?Я же сказал, что прошу популярно объяснить.
|
|
|
|
04.10.2012 00:12:35
Вот
/catalog/section/ /catalog/section/?page=2 /catalog/section/?sort=name&dir=asc /catalog/section/?sort=name&dir=desc и т.д. Все эти страницы должны иметь в качестве canonical /catalog/section/ . Сделать это можно массой различных способов, например, вы можете использовать переменные страницы и раздела:
Переменная canonical в данном случае - это может быть параметр страницы, раздела, либо задаваться через $APPLICATION->SetPageProperty("canonical", $val);. Конкретно, если рассматривать товарный каталог, который обычно работает через комплексный компонент, например, bitrix:catalog, то вы можете сделать копию шаблона компонента и разместить соответствующий код в шаблонах этого компонента (detail.php, section.php, top.php). В качестве значения можете брать текущий URL после очистки всех параметров, это можно сделать опять же массой способов. Например, $val = $APPLICATION->GetCurPageParam("", array_keys($_GET), false()); - получите текущий URL без параметров вообще. |
|||
|
|
08.10.2014 22:28:06
Добрый день!
Прошу Вас, расскажите по шагам в какой раздел в Битрикс, каким образом воткнуть этот rel="canonical" ?? Заранее спасибо. |
|
|
|
14.10.2015 15:37:48
Можно ещё так реализовать, если у вас нужный компонент подключен:
|
|||
|
|
14.10.2015 18:21:04
А если на отдельной странице, где подключается один компонент и есть пагинация, можно так:
|
|||
|
|
04.11.2015 19:47:01
всем привет. а как в этой конструкции исключить страницы каталога, т.е. чтобы главная, корзина и другие получали каноническую ссылку из текущей, а в каталоге каноническая на уровне компонента ставится.
|
|
|
|
27.01.2016 11:41:06
Юлиана Присяжнюк, почему бы вам тогда не отключить в компоненте каталога установку канона?
|
|
|
|
29.01.2016 23:19:05
Сейчас возникла проблема.
На одном сайте прекрасно работает
На другом не работает, не могу понять почему |
|||
|
|
16.06.2016 17:46:29
Во-первых такой штуки, как false() не существует, это не метод. Во-вторых, зачем использовать GetCurPageParam если тот же результат выдаст GetCurPage(false)? К тому же, /catalog/section/ /catalog/section/?page=2 Не являются одинаковыми страницами, т.к. первая выдает товары с первой страницы, а вторая со второй, и их то как раз не надо склеивать, по этому предложенный метод уберет из индекса страницы не только лишние, но и полезные. По этому всегда смотрите что применяете прежде чем применить. Вообще нужно взять GetCurPageParam затем проверить, есть ли там параметр постраничной навигации (или еще какой нужный) а потом уже убирать все остальное. и делать такую страницу канонической.
Вместо str_replace('index.php', '', $APPLICATION->GetCurPage(true)) Нужно просто написать $APPLICATION->GetCurPage(false) Но проблема будет таже с параметрами постраничной навигации. Да, кстати, по поводу решения Где то так будет работать: <? $gets = array(); foreach($_GET as $gettik=>$val) { if(strpos($gettik, 'PAGEN_') === false) { $gets[$gettik] = $val; } } $page = $APPLICATION->GetCurPageParam("", array_keys($gets), false); if($APPLICATION->GetCurPageParam("", "", false) !== $page) { $APPLICATION->AddHeadString('<link href="'.$page.'" rel="canonical" />',true); } ?> ну и в цикле проверки на параметры, можете свои добавить параметры - которые не являются каноническими для страницы. Можно вставить это в header.php если конечно у вас все страницы без параметров =) Если у вас не настроены ЧПУ - рекомендую настроить, ну или добавлять ваши параметры (вроде id) в цикл проверки. |
|||||||
|
|
04.04.2017 13:01:05
Для версии D7
Каноникал для всех страниц из пагинации
|
|||||
|
|
30.05.2017 15:26:05
|
|||||||
|
|
23.09.2017 14:46:14
|
|||
|
|
16.11.2017 01:13:18
Решение:
вставляем это в catalog.section в result_modifier.php $arSection = CIblockSection::GetById($arResult["ID"])->GetNext(); а в в component_epilog.php вставляем это: $APPLICATION->AddHeadString('<link href="http://'.SITE_SERVER_NAME.$arResult['SECTION_PAGE_URL'].'" rel="canonical" />',true); Все должно работать! |
|
|
|
30.03.2018 13:59:27
$APPLICATION->AddHeadString('<link href="http://'.SITE_SERVER_NAME.$arResult['SECTION_PAGE_URL'].'" |
|||
|
|
29.04.2018 18:37:29
Спасибо за инструкцию !
Настраиваю для сайта Или же сразу, пусть спец сделает Кто может быстро настроить и за сколько ? |
|
|
|
08.05.2018 10:53:11
Позволяет красиво обработать постраничную навигацию, создавать страницы типа /page-2/, /stranica-2/ и при этом соблюсти все рекомендации Google для постраничной навигации, добавить теги rel=next/prev/canonical на страницы с постраничкой! Надеюсь кому-то будет полезно! Буду благодарен за отзывы и предложения! |
|
|
|
12.03.2019 14:05:38
В шаблоне сайта (header.php) в head добавляем:
|
|||||||
|
|
04.04.2019 14:09:46
php_interface/init.php
для всех страниц, где не установлено canonical и есть параметры в запросе устанавливаем canonical базовую страницу
|
|||
|
|
27.02.2020 08:47:23
|
|||
|
|
29.04.2020 23:17:39
В последних версиях Битрикса нет необходимости добавлять в шаблоне сайта (header.php) :
Достаточно в нужном месте тела страницы указать канонический урл:
|
|||||||
|
|
||||||