Не получается войти в админку битрикс при многосайтовости, в частности на поддомене. Дублирование куки PHPSESSID.

Проблема с невозможностью войти в административную панель 1С-Битрикс при многосайтовой конфигурации встречается нередко. Симптомы типичны: вводишь логин и пароль, страница перезагружается, но авторизация не сохраняется. Причина почти всегда одна — дублирование куки PHPSESSID для разных поддоменов. Разберём проблему детально.

Описание проблемы: сессия не работает при многосайтовости

При многосайтовости Битрикс запускает несколько сайтов на одном сервере, зачастую используя поддомены или разные домены. Каждый сайт в Битрикс может иметь свои настройки домена, и именно здесь возникает конфликт: браузер получает несколько куки с именем PHPSESSID, установленных для разных доменов (например, для example.com и для .example.com). При следующем запросе браузер отправляет оба значения, PHP получает конфликтующую сессию и не может корректно аутентифицировать пользователя.

Причина: дублирование куки PHPSESSID

PHP устанавливает куку сессии с параметрами домена, которые определяются в конфигурации. Если Битрикс управляет несколькими сайтами и для каждого задаёт собственный домен в заголовке Set-Cookie, в браузере накапливаются дубликаты PHPSESSID. Особенно часто это случается, когда:

  • Сайты работают на поддоменах одного домена (site1.example.com и site2.example.com)
  • Основной домен и поддомен указаны в настройках как отдельные сайты
  • В настройках сайта в административной панели указан домен с точкой или без неё

В DevTools браузера (вкладка Application → Cookies) можно наглядно увидеть дублирующиеся куки PHPSESSID с разными значениями и доменами.

Решение 1: Сброс куки через dbconn.php

Быстрое решение — принудительно очистить дублирующуюся куку при инициализации Битрикс. Добавьте следующий код в файл /bitrix/php_interface/dbconn.php:

Эта строка устанавливает куку PHPSESSID с пустым значением, временем жизни 777 секунд от начала эпохи (фактически — просроченную куку) и путём /. Браузер при получении такого заголовка удаляет старую куку с этим именем. После этого PHP устанавливает свежую корректную куку, и конфликт исчезает.

Важный нюанс: эта строка должна стоять до момента запуска сессии Битрикс, иначе эффекта не будет. Файл dbconn.php подключается на самых ранних стадиях инициализации, поэтому это идеальное место для такого кода.

Решение 2: Настройка домена в параметрах сессии

Более «чистый» способ — явно задать домен для куки сессии в PHP. Добавьте в dbconn.php или php.ini:

Точка перед доменом означает, что кука будет доступна для всех поддоменов. Это позволяет использовать единую сессию на всём сайтовом кластере и избежать дублирования.

Решение 3: Удалить доменное имя из настроек сайта

В административной панели Битрикс проверьте настройки каждого сайта: Настройки → Настройки продукта → Сайты → [Ваш сайт] → Редактировать. На вкладке Домены убедитесь, что не задан домен, конфликтующий с основным. Часто проблему решает удаление явно прописанного домена — Битрикс определит его автоматически из запроса.

Если у вас есть доступ к php.ini, можно задать параметры сессии глобально:

После изменений перезапустите PHP-FPM или веб-сервер.

Проверка: как посмотреть текущие куки в DevTools

Для диагностики проблемы откройте DevTools в браузере (F12) и перейдите на вкладку Application (Chrome) или Storage (Firefox). В разделе Cookies выберите ваш домен. Если видите несколько строк с именем PHPSESSID для разных доменов — проблема подтверждена. После применения решения должна остаться только одна кука.

Также можно использовать вкладку Network: выберите запрос к сайту и проверьте заголовки ответа (Response Headers) на предмет нескольких строк Set-Cookie: PHPSESSID=....

Предотвращение: правильная настройка многосайтовости

Чтобы избежать проблемы при первоначальной настройке многосайтовости в Битрикс:

  • Используйте единый параметр session.cookie_domain с точкой перед доменом для всей группы сайтов
  • Не указывайте разные домены в настройках сессии для разных сайтов в кластере
  • В настройках сайтов в Битрикс старайтесь не дублировать домены с разным написанием (с www и без)
  • При использовании HTTPS включайте флаг Secure для кук, чтобы исключить смешивание HTTP и HTTPS сессий

Корректная настройка кук сессии — залог стабильной авторизации на многосайтовом Битрикс без постоянных разлогиниваний и потери сессий.