Общая сессия на поддоменах
Если вы используете поддомены, установите для них одну сессию. Для этого необходимо установить настройку PHP
session.cookie_domain .site.com
где site.com - ваш сайт
Сделать это можно несколькими способами:
1) Для Apache эту настройку можно сделать через файл .htaccess, добавив в конец:
php_value session.cookie_domain .site.com
2) Через функцию ini_set(). Для этого в самом начале файла index.php, сразу после <?php пишем:
ini_set('session.cookie_domain', '.site.com');
3) Для Nginx в конфиг-файле в секции location нужно добавить:
fastcgi_param PHP_VALUE "
session.cookie_domain = .site.com
";
После изменения настроек обязательно нужно почистить куки на всех поддоменах, чтобы избавиться от кэша в модуле!
Ссылки
После добавления поддоменов, если не настраивать мультимагазин в Opencart, все ссылки на поддоменах будут вести на основной.
Например, поддомен spb.site.ru, а ссылки на категории, товары и т.д. ведут на site.ru.
Так же могут не работать некоторые ajax-запросы, т.к. они будут идти на основной и браузеры из-за политики безопасности будут их блокировать (CORS).
Чтобы этого избежать, нужно настроить мультимагазин. Заходите в админке в Настройки, откроется страница "Управление магазинами", добавляете новые магазины (ваши поддомены).
Мультимагазин позволяет настраивать привязку категорий и товаров к магазинам (поддоменам).
Если вам не нужен такой функционал, можно сделать так:
В config.php нужно вставить:
// HTTP define('HTTP_SERVER', 'http://' . $_SERVER['HTTP_HOST'] . '/'); // HTTPS define('HTTPS_SERVER', 'https://' . $_SERVER['HTTP_HOST'] . '/');
а старые, которые
define('HTTP_SERVER', ...
define('HTTPS_SERVER', ...
удалить либо закомментировать.
В этом случае необходимо указать "Основной домен" в настройках модуля. Это решение от пользователя, мной не тестировалось.