canonical
прошлась. есть упоминание каноникл
1. в файлах sh404SEF
но вот еще здесь читаю, что sh404SEF не обрабатывает домен
https://weeblr.com/helpdesk/sh404sef/2791-from-http-to-https и нужно рыть Система-SEF/ если правильно поняла
2. есть в файлах VirtueMart
// Add the product link for canonical
$product->canonical = 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $this->_id . '&virtuemart_category_id=' . $productCategory;
// Set Canonic link
if (!empty($tpl)) {
$format = $tpl;
} else {
$format = JRequest::getWord('format', 'html');
}
if ($format == 'html') {
$document->addHeadLink( JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_category_id='.$categoryId), 'canonical', 'rel', '' );
}
// Set Canonic link
$format = JRequest::getWord('format', 'html');
if ($format == 'html') {
$document->addHeadLink ($product->link, 'canonical', 'rel', '');
}
// Set Canonic link
$document->addHeadLink(JRoute::_($product->canonical, true, -1), 'canonical', 'rel', '');
/* Set Canonic link */
$format = JRequest::getWord('format', 'html');
if ($format == 'html') {
$document->addHeadLink( $product->link , 'canonical', 'rel', '' );
3. и еще здесь: www\plugins\system\metagenerator\metagenerator.php
$usecanonical = $this->params->def('usecanonical', 0);
$categorytitle = $this->params->def('categorytitle', 0);
$sitedomain = $this->params->def('sitedomain','');
$pageTitle = $document->getTitle();
$sitename = $mainframe->getCfg('sitename');
$sitename = str_replace('&','&',$sitename);
$sep = str_replace('\\','',$this->params->def('separator','|')); //Sets and removes Joomla escape char bug.
$option = JRequest::getVar('option', '');
$view = JRequest::getVar('view','');
if($usecanonical==0){
$thestart = JRequest::getInt('start',0);
$limitstart = JRequest::getInt('limitstart',0);
$start="";
if($thestart>0) {
$start = '?start='.$thestart;
} elseif($limitstart>0) {
$start = '?limitstart='.$limitstart;
}
}
$db = $database = JFactory::getDBO();
if($option == 'com_content') {
if($view=='article') {
if($usecanonical==0 || $categorytitle==0){
$id = JRequest::getInt('id');
if($id>0) {
$query = "SELECT b.title as cattitle,".
" CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(':', a.id, a.alias) ELSE a.id END as slug,".
" CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(':', a.catid, b.alias) ELSE a.catid END as catslug".
" FROM #__content AS a LEFT JOIN #__categories AS b ON b.id = a.catid WHERE a.id = $id";
$row = $db->SetQuery($query);
$row = $db->loadObject();
if($usecanonical==0){
$ucanonical = $sitedomain.JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug));
}
if($categorytitle==0 && $row->cattitle!='') {
$sitename = $row->cattitle;
}
}
}
}
if($view=='category' && $usecanonical==0) {
$ucanonical = $sitedomain.JRoute::_(ContentHelperRoute::getCategoryRoute(JRequest::getInt('id')));
if(strpos($ucanonical, '&')!== 0) {
$start = str_replace('&','?',$start);
}
$ucanonical = $ucanonical.$start;
}
}
if ($this->isFrontPage() && $usecanonical==0) {
if($start!=''){
$ucanonical = $sitedomain.JRoute::_('index.php').$start;
} else {
$ucanonical = $sitedomain;
}
}
if(isset($ucanonical) && $ucanonical!='')$document->addHeadLink( $ucanonical, 'canonical', 'rel', '' );
\www\plugins\system\metagenerator\metagenerator.xml
<field name="spacer6" type="spacer" default="PLG_METAGENERATOR_CANONICAL_META_TAG" label="PLG_METAGENERATOR_CANONICAL_META_TAG" description="" />
<field name="usecanonical" type="radio" default="0" label="PLG_METAGENERATOR_USE_CANONICAL_META_TAG" description="PLG_METAGENERATOR_USE_CANONICAL_META_TAG_DESC">
<option value="0">PLG_METAGENERATOR_YES</option>
<option value="1">PLG_METAGENERATOR_NO</option>
4. \www\plugins\system\shmobile\shmobile.php
// 2 - add a canonical tag to the page, to avoid search engines penalties
global $shCanonicalTag;
$pageInfo = sh404sefFactory::getPageInfo();
$shCanonicalTag = $pageInfo->currentSefUrl;
$shCanonicalTag = shCleanUpVar($shCanonicalTag, 'sh404sef_override_mobile_detection');
надеюсь, это что-то прояснит