Перейти к содержанию

Общая сессия на поддоменах

Если вы используете поддомены, установите для них одну сессию. Для этого необходимо установить настройку PHP

session.cookie_domain .site.com

где site.com - ваш сайт

 

Сделать это можно несколькими способами (вместо site.com используйте ваш домен):

 

1) Через функцию ini_set().

Для этого в самом начале файла index.php, сразу после <?php пишем:

ini_set('session.cookie_domain', '.site.com');

 

2) Для Apache эту настройку можно сделать через файл .htaccess, добавив в конец:

php_value 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', 'https://' . $_SERVER['HTTP_HOST'] . '/');
// HTTPS
define('HTTPS_SERVER', 'https://' . $_SERVER['HTTP_HOST'] . '/');

а старые, которые

define('HTTP_SERVER', ...

define('HTTPS_SERVER', ...

 

удалить либо закомментировать.

 

В этом случае необходимо указать "Основной домен" в настройках модуля. Это решение от пользователя, мной не тестировалось.



Comments

Доброго дня! после добавления 

php_value session.cookie_domain .site.com

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

Поделиться этим комментарием


Ссылка на комментарий

Здравствуйте. Есть 2 домена, на одном под домены (работают как нужно), но вот у второго домена город тот же что и у первого, как сделать чтоб при вводе домена 2 не открывался домен 1, но чтоб все как и прежде работало на домене 1 (цены от города и прочие), и в меню выбора города не должно быть домена 2.

Попробовал для домена 2 выбрать не город а область, добился нормальной работы домена 1, но в товаре домена 2 в тайтлах не указан город (это как бы понятно), какие будут мысли?

Поделиться этим комментарием


Ссылка на комментарий

Здравствуйте. В модуле такое не предусмотрено, нужно хардкодить. Готового решения не дам, это нужно все настроить как у вас. Примерно так:

В 08.05.2024 в 09:23, int-safe сказал:

как сделать чтоб при вводе домена 2 не открывался домен 1

system\library\progroman\citymanager\citymanager.php после

protected function needRedirect() {

вставить

        // Запрещаем редирект, если текущий город ГОРОД и хост ДОМЕН2
        if ($_SERVER['HTTP_HOST'] == 'домен2' && $this->fias_id == 1234) {
            return false;
        }

замените значения:

домен2 - домен 2

ГОРОД - город, привязанный к домену

1234 - fias_id города из таблицы fias

 

В 08.05.2024 в 09:23, int-safe сказал:

в меню выбора города не должно быть домена 2

Попробуйте в админке, где связи, чтобы первой шла привязка города к домену 1. В общем, попробуйте поменять их местами в этом списке.

Поделиться этим комментарием


Ссылка на комментарий

Спасибо, первый вопрос решен, но второй связан с функцией public function getPopupCityName() { там определено выводить название города, и так как основной домен на первом месте то сразу после него выводится то же название города но с ссылкой на второй домен, желательно в домене 2 показывать только название его города, не цеплять города с домена 1 и его поддоменов.

Поделиться этим комментарием


Ссылка на комментарий
Гость
Добавить комментарий...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...