Magento Multistore Canonical Tag

У меня для тебя короткий вопрос. У Magento уже есть канонический инструмент для товаров и категорий.

Но как это работает с несколькими магазинами?

Пример:

У меня есть 3 домена.

http://domainname1.at
http://domainname2.de
http://domainname3.ch

Все они имеют одинаковое содержание (немецкий язык).

когда я активирую канонические теги для domainname3.ch
тег выглядит так:

<link rel="canonical" href="http://dimainname3.ch" />

Но я хочу это имя домена2 & domainname3 canonicaltag указывает на domainname1, где находится уникальный контент!

Спасибо!

3

Решение

В Magento уже есть канонический инструмент для товаров и категорий … как это работает с несколькими магазинами?

В настоящее время у него нет этой способности из коробки, поэтому вам нужно будет установить ее с расширением. Есть много способов сделать это, но я бы изменил rel="canonical" ссылки, когда они будут добавлены.

В моем новом или измененном расширении я бы расширил Mage_Page_Block_Html_Head и переопределить метод addLinkRel() сделать что-то вроде этого:

class My_Page_Block_Html_Head extends Mage_Page_Block_Html_Head
{
/**
* Add Link element to HEAD entity
* Overridden to support new canonical cross domain feature.
*
* @param string $rel forward link types
* @param string $href URI for linked resource
* @return Mage_Page_Block_Html_Head
*/
public function addLinkRel($rel, $href)
{
if ($rel == 'canonical' && $ccd = Mage::getStoreConfig('design/head/canonical_cross_domain')) {
$href = preg_replace('/(https?:\/\/)[^\/]+(\/.*)/', "$1$ccd$2", $href);
}
return parent::addLinkRel($rel, $href);
}
}

Чтобы это работало как задумано, мне нужно было бы вставить значения в core_config_data таблица базы данных. Это можно сделать вручную или, что еще лучше, в моем расширении я могу настроить новое поле в разделе конфигурации администратора. Общее / Дизайн / HTML Head. Я не буду проходить через это здесь, так как это просто приятное прикосновение. Значения для добавления будут примерно такими:

INSERT INTO core_config_data
(scope, scope_id, path, value)
VALUES
('stores', STORE_ID_FOR_DOMAIN2, 'design/head/canonical_cross_domain', 'domainname1.at'),
('stores', STORE_ID_FOR_DOMAIN3, 'design/head/canonical_cross_domain', 'domainname1.at');

Теперь в любое время Magento добавляет стандарт rel="canonical" ссылки, где это обычно происходит, он сначала проверит, существует ли междоменный домен, настроенный для текущего представления магазина, и подставит это имя домена вместо текущего.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]