$arResult['CSTM']['CANONICAL'] = '';
if (strlen(trim($arResult['PROPERTIES']['CANONICAL_LINK']['VALUE']))) {
// пытаемся получить каноникал из свойства, которое заполняют в 1с
$arResult['CSTM']['CANONICAL'] = trim($arResult['PROPERTIES']['CANONICAL_LINK']['VALUE']);
} elseif (isset($arResult["ORIGINAL_PARAMETERS"]["CURRENT_BASE_PAGE"]) && strlen($arResult["ORIGINAL_PARAMETERS"]["CURRENT_BASE_PAGE"]) > 0) {
// пытаемся получить каноникал из базовой страницы
$arResult['CSTM']['CANONICAL'] = $_SERVER["REQUEST_SCHEME"] . '://' . $_SERVER["HTTP_HOST"] . $arResult["ORIGINAL_PARAMETERS"]["CURRENT_BASE_PAGE"];
} elseif (strlen($arResult["DETAIL_PAGE_URL"]) > 0) {
// пытаемся получить каноникал из пути детальной страницы
$arResult['CSTM']['CANONICAL'] = $_SERVER["REQUEST_SCHEME"] . '://' . $_SERVER["HTTP_HOST"] . $arResult["DETAIL_PAGE_URL"];
}
// добавим данные, что бы они были доступны в component_epilog.php
if (is_object($this->__component)) {
$cp = $this->__component;
$cp->arResult['CSTM_CANONICAL'] = $arResult['CSTM']['CANONICAL'];
$cp->SetResultCacheKeys(['CSTM_CANONICAL']);
if (!isset($arResult['CSTM']['CANONICAL'])) {
$arResult['CSTM']['CANONICAL'] = $cp->arResult['CSTM_CANONICAL'];
}
}