Как удалить \ в canonical ?

Тема в разделе "SEO - оптимизация, продвижение", создана пользователем art22, 16.06.2018.

  1. Offline

    art22 Пользователь

    Регистрация:
    14.02.2017
    Сообщения:
    52
    Симпатии:
    0
    Пол:
    Мужской
    на главной странице в каноникле стоит слеш, но в адресной странице ее нет и в других страницах слеша нет только на главной
    <link href="site.ru/" rel="canonical" />

    Нашел файл shPageRewrite он вроде отвечает за данный тег

    Код (PHP):
    1. // if there' a custom canonical for that page, insert it, or replace any existing ones
    2.             if (!empty($metadata->canonical) && $canonicalCount == 0)
    3.             {
    4.                 // insert a new canonical
    5.                 $tagsToInsert .= "\n" . '<link href="' . htmlspecialchars($metadata->canonical, ENT_COMPAT, 'UTF-8') . '" rel="canonical" />' . "\n";
    6.             }
    7.             else if (!empty($metadata->canonical))
    8.             {
    9.                 // replace existing canonical
    10.                 $buffer = ShlSystem_Strings::pr(
    11.                     $canonicalPattern,
    12.                     '<link href="' . htmlspecialchars($metadata->canonical, ENT_COMPAT, 'UTF-8') . '" rel="canonical" />', $buffer
    13.                 );
    14.             }
     

    Вложения:

  2.  
  3. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Версия Джумла, какое расширение используешь для canonical ?
     
  4. Offline

    art22 Пользователь

    Регистрация:
    14.02.2017
    Сообщения:
    52
    Симпатии:
    0
    Пол:
    Мужской
    3.8.1 joomla

    Стоит sh404sef.

    canonical вроде было в самом шаблоне
     
  5. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    Файл в папке шаблона ? А что выведет?
    Код (PHP):
    1. var_dump($metadata->canonical);
     
  6. Offline

    art22 Пользователь

    Регистрация:
    14.02.2017
    Сообщения:
    52
    Симпатии:
    0
    Пол:
    Мужской
    код поставил на главный выдал NULL
     
  7. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    надо не просто на главной, а в коде этого файла. После блока кода, который в первом посте.
     
  8. Offline

    art22 Пользователь

    Регистрация:
    14.02.2017
    Сообщения:
    52
    Симпатии:
    0
    Пол:
    Мужской
    В плагинах sef нашел

    Код (PHP):
    1. /**
    2.     * Add the canonical uri to the head.
    3.     *
    4.     * @return  void
    5.     *
    6.     * @since   3.5
    7.     */
    8.     public function onAfterDispatch()
    9.     {
    10.         $doc = $this->app->getDocument();
    11.  
    12.         if (!$this->app->isClient('site') || $doc->getType() !== 'html')
    13.         {
    14.             return;
    15.         }
    16.  
    17.         $sefDomain = $this->params->get('domain', '');
    18.  
    19.         // Don't add a canonical html tag if no alternative domain has added in SEF plugin domain field.
    20.         if (empty($sefDomain))
    21.         {
    22.             return;
    23.         }
    24.  
    25.         // Check if a canonical html tag already exists (for instance, added by a component).
    26.         $canonical = '';
    27.  
    28.         foreach ($doc->_links as $linkUrl => $link)
    29.         {
    30.             if (isset($link['relation']) && $link['relation'] === 'canonical')
    31.             {
    32.                 $canonical = $linkUrl;
    33.                 break;
    34.             }
    35.         }
    36.  
    37.         // If a canonical html tag already exists get the canonical and change it to use the SEF plugin domain field.
    38.         if (!empty($canonical))
    39.         {
    40.             // Remove current canonical link.
    41.             unset($doc->_links[$canonical]);
    42.  
    43.             // Set the current canonical link but use the SEF system plugin domain field.
    44.             $canonical = $sefDomain . JUri::getInstance($canonical)->toString(array('path', 'query', 'fragment'));
    45.         }
    46.         // If a canonical html doesn't exists already add a canonical html tag using the SEF plugin domain field.
    47.         else
    48.         {
    49.             $canonical = $sefDomain . JUri::getInstance()->toString(array('path', 'query', 'fragment'));
    50.         }
    51.  
    52.         // Add the canonical link.
    53.         $doc->addHeadLink(htmlspecialchars($canonical), 'canonical');
    54.     }
     
  9. OlegK
    Offline

    OlegK Russian Joomla! Team Команда форума ⇒ Профи ⇐

    Регистрация:
    17.01.2011
    Сообщения:
    7 813
    Симпатии:
    771
    Пол:
    Мужской
    При добавлении домена в поле Домен в параметрах плагина, появился тег rel="canonical" . До этого было пусто.
    --- добавлено: 18.06.2018, первое сообщение размещено: 18.06.2018 ---
    Добавь код в плагин
    Код (PHP):
    1. // OlegK Мой код
    2.   $menu = JFactory::getApplication()->getMenu();
    3.    if ($menu->getActive() == $menu->getDefault()) {
    4.    $canonical =  preg_replace('/(\/)$/i', '', JUri::base(true));
    5.    }
    6.      // Add the canonical link. Это код в плагине
     

Поделиться этой страницей

Загрузка...