Где Magento 2 хранит свой корневой веб-адрес, и как его изменить

sql
веб-адрес

(Дмитрий Федюк) #1

Как и в Magento 1, Magento 2 хранит свой корневой веб-адрес в той же самой таблице core_config_data с теми же самыми ключами web/unsecure/base_url и web/secure/base_url.

Изменить корневой веб-адрес можно той же самой командой SQL:

UPDATE core_config_data 
SET value = 'http://example.ru/' 
WHERE path IN ('web/secure/base_url', 'web/unsecure/base_url');

Однако заметил, что Magento 2 зачем-то упоминает корневой веб-адрес ещё в одном месте: в той же таблице core_config_data по ключу design/head/includes.
Значение этого ключа следующее:

<link  rel="stylesheet" type="text/css"  media="all" href="<корневой адрес сайта>/pub/media/styles.css" />

Никакой необходимости хранить корневой адрес сайта здесь нет: видимо, это произошло по недосмотру программистов Magento 2 и будет устранено в будущих версиях Magento 2.
Однако сейчас при переносе магазина на новый веб-адрес Вам придётся изменить и значение design/head/includes.
Сделать это можно так:

UPDATE core_config_data
SET value = REPLACE(value, '<прежний корневой веб-адрес>', '<новый корневой веб-адрес>')
WHERE path = 'design/head/includes';

например:

UPDATE core_config_data
SET value = REPLACE(value, 'http://old.ru/', 'http://new.ru/')
WHERE path = 'design/head/includes';

После редактирования таблицы core_config_data надо очистить кэш:

rm -rf var/cache/*