Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

canonical для статей


Recommended Posts

Столкнулся с такой проблемой, в информационных статьях нужно вывести canonical, но вместо стокового домена указать свой, нашел код который работает и выводит, но не могу понять как поменять домен и оставить только ссылку на саму статью. Пример что нужно

 

как сейчас site.ru/statiya, а нужно demosite.ru/statiya

 

$this->document->addLink($this->url->link('information/information''information_id=' .  $information_id), 'canonical');
Надіслати
Поділитися на інших сайтах


4 часа назад, Prooksius сказал:

$this->document->addLink(str_replace('site.ru/', 'demosite.ru/', $this->url->link('information/information', 'information_id=' .  $information_id)), 'canonical');

 

 

Да спасибо, а если не заменой а просто прописать адрес, как написать?

Надіслати
Поділитися на інших сайтах


дело в том, что адрес сайта берется из config.php в корне сайта: HTTP_SERVER/HTTPS_SERVER
Вот что там прописано, то и вставится в адрес получаемого url.
Самое простое, мне кажется, так, заменой.
Можно в config.php прописать доп. адреса для вот этого вашего demosite.ru (например, HTTP_DEVSERVER) и заменять так:
 

$this->document->addLink(str_replace(HTTP_SERVER, HTTP_DEVSERVER, $this->url->link('information/information', 'information_id=' . $information_id)), 'canonical');
или HTTPS..., если есть ssl

Надіслати
Поділитися на інших сайтах

29 минут назад, Prooksius сказал:

дело в том, что адрес сайта берется из config.php в корне сайта: HTTP_SERVER/HTTPS_SERVER
Вот что там прописано, то и вставится в адрес получаемого url.
Самое простое, мне кажется, так, заменой.
Можно в config.php прописать доп. адреса для вот этого вашего demosite.ru (например, HTTP_DEVSERVER) и заменять так:
 

$this->document->addLink(str_replace(HTTP_SERVER, HTTP_DEVSERVER, $this->url->link('information/information', 'information_id=' . $information_id)), 'canonical');
или HTTPS..., если есть ssl

 

Дело в том что я делаю canonical на поддоменах и мне нужно что бы он указывал на основной домен, за наводку понял

Надіслати
Поділитися на інших сайтах


учтите, когда вы решите поставить ssl и все ссылки перейдут на https, это перестанет работать.

Можно сделать как-то так и просто забыть об этом:

if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) {
	$server = HTTPS_SERVER;
	$devserver = 'https://demosite.ru/';
} else {
	$server = HTTP_SERVER;
	$devserver = 'http://demosite.ru/';
}

$this->document->addLink(str_replace($server, $devserver, $this->url->link('information/information', 'information_id=' .  $information_id)), 'canonical');

 

Надіслати
Поділитися на інших сайтах

Сделал вот так, работает

 

                $current_url = $this->url->link('common/home');
                $this->document->addLink(str_replace($current_url, HTTPS_SERVER, $this->url->link('information/information''information_id=' .  $information_id)), 'canonical');
Надіслати
Поділитися на інших сайтах


  • 2 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.