на главной странице в каноникле стоит слеш, но в адресной странице ее нет и в других страницах слеша нет только на главной <link href="site.ru/" rel="canonical" /> Нашел файл shPageRewrite он вроде отвечает за данный тег Код (PHP): // if there' a custom canonical for that page, insert it, or replace any existing ones if (!empty($metadata->canonical) && $canonicalCount == 0) { // insert a new canonical $tagsToInsert .= "\n" . '<link href="' . htmlspecialchars($metadata->canonical, ENT_COMPAT, 'UTF-8') . '" rel="canonical" />' . "\n"; } else if (!empty($metadata->canonical)) { // replace existing canonical $buffer = ShlSystem_Strings::pr( $canonicalPattern, '<link href="' . htmlspecialchars($metadata->canonical, ENT_COMPAT, 'UTF-8') . '" rel="canonical" />', $buffer ); }
В плагинах sef нашел Код (PHP): /** * Add the canonical uri to the head. * * @return void * * @since 3.5 */ public function onAfterDispatch() { $doc = $this->app->getDocument(); if (!$this->app->isClient('site') || $doc->getType() !== 'html') { return; } $sefDomain = $this->params->get('domain', ''); // Don't add a canonical html tag if no alternative domain has added in SEF plugin domain field. if (empty($sefDomain)) { return; } // Check if a canonical html tag already exists (for instance, added by a component). $canonical = ''; foreach ($doc->_links as $linkUrl => $link) { if (isset($link['relation']) && $link['relation'] === 'canonical') { $canonical = $linkUrl; break; } } // If a canonical html tag already exists get the canonical and change it to use the SEF plugin domain field. if (!empty($canonical)) { // Remove current canonical link. unset($doc->_links[$canonical]); // Set the current canonical link but use the SEF system plugin domain field. $canonical = $sefDomain . JUri::getInstance($canonical)->toString(array('path', 'query', 'fragment')); } // If a canonical html doesn't exists already add a canonical html tag using the SEF plugin domain field. else { $canonical = $sefDomain . JUri::getInstance()->toString(array('path', 'query', 'fragment')); } // Add the canonical link. $doc->addHeadLink(htmlspecialchars($canonical), 'canonical'); }
При добавлении домена в поле Домен в параметрах плагина, появился тег rel="canonical" . До этого было пусто. --- добавлено: 18.06.2018, первое сообщение размещено: 18.06.2018 --- Добавь код в плагин Код (PHP): // OlegK Мой код $menu = JFactory::getApplication()->getMenu(); if ($menu->getActive() == $menu->getDefault()) { $canonical = preg_replace('/(\/)$/i', '', JUri::base(true)); } // Add the canonical link. Это код в плагине