Jump to content


Photo
- - - - -

Пагинация и rel="canonical" (2)


Best Answer Cheren-dow , 24 January 2014 - 09:03

Попробуйте так

$baseUrl = substr(JUri::base(),0,-1);
$this->app->system->document->addHeadLink($baseUrl . $categoryUrl, 'canonical');

1 слеш должен убраться 

Go to the full post


  • This topic is locked This topic is locked
4 replies to this topic

#1 Евген Аватарович

Евген Аватарович
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 197
  • topics: 40

Posted 24 January 2014 - 06:58

Здравствуйте.

 

Вот в этой теме http://forum.jbzoo.c...onical/?p=34978 обсуждался вопрос про добавление тега rel="canonical" к категории.

 

Я сделал так, как советовал Денис (добавил код в файл \components\com_zoo\controllers\default.php).

Все получилось - каноническая ссылка появилась, вот только возникла проблема...

Ссылка получилась без указания домена.

 

Пример:

 

Должно быть так -

<base href="http://имя_домена.ru/detskaya-komnata/felicita-kids-mebel/krovati-dvukhyarusnye-felicita-kids" />
<link href="http://имя_домена.ru/detskaya-komnata/felicita-kids-mebel/krovati-dvukhyarusnye-felicita-kids" rel="canonical" />

 

А получилось вот так -

<base href="http://happyhome-mebel.ru/detskaya-komnata/felicita-kids-mebel/krovati-dvukhyarusnye-felicita-kids" />
<link href="/detskaya-komnata/felicita-kids-mebel/krovati-dvukhyarusnye-felicita-kids" rel="canonical" />

 

Подскажите пожалуйста, КАК ИСПРАВИТЬ ситуацию?

Спасибо.


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 24 January 2014 - 07:11

Попробуйте в 

$this->app->system->document->addHeadLink($categoryUrl, 'canonical');

Дописать адрес сайта 

$this->app->system->document->addHeadLink(JUri::base() . $categoryUrl, 'canonical');

Сам не проверял.


Edited by Cheren-dow, 24 January 2014 - 07:11.

  • 1
Изображение
 

#3 Евген Аватарович

Евген Аватарович
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 197
  • topics: 40

Posted 24 January 2014 - 07:23

Спасибо, почти получилось, только в ссылке после имени домена стоит два слэша:

 

<link href="http://имя_домена.ru//detskaya-komnata/felicita-kids-mebel/krovati-dvukhyarusnye-felicita-kids" rel="canonical" />

 

Подскажите пожалуйста, как это исправить?


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 24 January 2014 - 09:03   Best Answer

Попробуйте так

$baseUrl = substr(JUri::base(),0,-1);
$this->app->system->document->addHeadLink($baseUrl . $categoryUrl, 'canonical');

1 слеш должен убраться 


  • 1
Изображение
 

#5 Евген Аватарович

Евген Аватарович
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0.8
  • posts: 197
  • topics: 40

Posted 24 January 2014 - 09:25

Да, все отлично:

Получился вот такой код

    // add canonical
            if ($this->app->system->document instanceof JDocumentHTML) {
                $categoryUrl = JRoute::_($this->app->route->category($this->category), true, -1);
                $baseUrl = substr(JUri::base(),0,-1);
                $this->app->system->document->addHeadLink($baseUrl . $categoryUrl, 'canonical');
     
                $headData = $this->app->system->document->getHeadData();
                foreach ($headData['links'] as $key => $value) {
                    if ($value['relation'] == 'canonical' && $key != $categoryUrl) {
                        unset($headData['links'][$key]);
                    }
                }
                $this->app->system->document->setHeadData($headData);
            }

Спасибо Вам огромное за помощь!!! :)


  • 0




Click to return to top of page in style!