diff --git a/plugins/system/languagefilter/languagefilter.php b/plugins/system/languagefilter/languagefilter.php index 504e696c6f72b..8132651f72011 100644 --- a/plugins/system/languagefilter/languagefilter.php +++ b/plugins/system/languagefilter/languagefilter.php @@ -633,7 +633,17 @@ public function onAfterDispatch() if (isset($cassociations[$language->lang_code])) { $link = JRoute::_($cassociations[$language->lang_code] . '&lang=' . $language->sef); - $doc->addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + + // Check if language is the default site language and remove url language code is on + if ($language->sef == self::$default_sef && $this->params->get('remove_default_prefix') == '1') + { + $relLink = str_replace('/' . $language->sef, '', $link); + $doc->addHeadLink($server . $relLink, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + } + else + { + $doc->addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + } } elseif (isset($associations[$language->lang_code])) { @@ -650,7 +660,16 @@ public function onAfterDispatch() $link = JRoute::_($item->link . '&Itemid=' . $item->id . '&lang=' . $language->sef); } - $doc->addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + // Check if language is the default site language and remove url language code is on + if ($language->sef == self::$default_sef && $this->params->get('remove_default_prefix') == '1') + { + $relLink = str_replace('/' . $language->sef, '', $link); + $doc->addHeadLink($server . $relLink, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + } + else + { + $doc->addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + } } } } @@ -678,7 +697,16 @@ public function onAfterDispatch() $link = JRoute::_($item->link . '&Itemid=' . $item->id . '&lang=' . $language->sef); } - $doc->addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + // Check if language is the default site language and remove url language code is on + if ($language->sef == self::$default_sef && $this->params->get('remove_default_prefix') == '1') + { + $relLink = str_replace('/' . $language->sef, '', $link); + $doc->addHeadLink($server . $relLink, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + } + else + { + $doc->addHeadLink($server . $link, 'alternate', 'rel', array('hreflang' => $language->lang_code)); + } } } }