Достаточно часто после переноса сайта на CMS 1с-Битрикс / Bitrix с одного хостинга на другой или со старого сервера на новый администраторы сайта сталкиваются с проблемами:
- При попытке авторизоваться в админ-панели снова перекидывает на форму авторизации
- Добавление товаров в корзину не срабатывает
- Заказы на сайте не оформляются
- В оформлении заказа или других формах появляется ошибка "Ваша сессия истекла. Пожалуйста, перезагрузите страницу"
Как исправить данную проблему?
Для выполнения действий ниже необходимо обратиться к вашему разработчику, т.к. необходимы навыки работы с кодом и понимание вносимых изменений.
Вариант А: у вас один сайт по многосайтовости
Вариант А: у вас один сайт по многосайтовости
- Переходим в административную панель. Переходим в Настройки > Настройки продукта > Сайты > Список сайтов
Проверяем что у вас один сайт по многосайтовости, открываем его
Очищаем поле Доменное имя, сохраняем
- Открываем файл /bitrix/.settings.php - проверяем блок session
Проверяем, что сессии хранятся в файлах, значение блока session должно быть равно:
'session' => array ( 'value' => array ( 'mode' => 'default', ), 'readonly' => true, ),
- В /bitrix/php_interface/dbconn.php
Добавляем строку
setcookie("PHPSESSID", "", 777, '/', '.site.ru');Где вместо site.ru указан адрес вашего сайта. Обратите внимание, что перед адресом сайта стоит точка - Проверяем авторизацию и прочие проблемы, после выполнения действий выше они должны исправиться
Вариант Б: Если используются домены третьего уровня
Не используйте домены третьего уровня, если используется домен второго уровня. Если используется site.ru не рекомендуется использовать domain.site.ru
Почему: потому что при заходе на site.ru установится кука сессии для site.ru и всех доменов третьего уровня. При последующем заходе на domain.site.ru установится кука сессии для domain.site.ru, но на сайте domain.site.ru будет видна кука и домена второго уровня и третьего. Битрикс будет путаться в куках писать что session expiried.
Теоретически, тут может помочь добавление в init.php для сайта с доменом третьего уровня (сброс куки основного домена):
setcookie("PHPSESSID", "", 777, '/', '.site.ru');Но лучше впринципе не использовать домены третьего уровня.
Если описанные выше методы не помогли - рекомендую обратиться в техническую поддержку битрикса.
