Битрикс http авторизация ошибка

March 20 2015, 14:20

В Apache .htaccess по этому случаю  существует запись:
RewriteRule .* — [E=REMOTE_USER:%{HTTP:Authorization}]

Что нужно сделать в конфиге nginx:

Найдите блок обработки php, с перечислением fastcgi_param и добавтье в него:

fastcgi_param   REMOTE_USER       $http_authorization;

Что нужно сделать в /php_interface/dbconn.php:

$remote_user = $_SERVER[«REMOTE_USER»] ? $_SERVER[«REMOTE_USER»] : $_SERVER[«REDIRECT_REMOTE_USER»];
$strTmp = base64_decode(substr($remote_user,6));
if ($strTmp) {
list($_SERVER[‘PHP_AUTH_USER’], $_SERVER[‘PHP_AUTH_PW’]) = explode(‘:’, $strTmp);
}

7

12.05.200915:0312.05.2009 15:03:45

Что делать если на каждый хит теряется авторизация? Простому пользователю проще будет написать в техподдержку. А разработчик сайта может сам легко продиагностировать эту проблему не дожидаясь ответа техподдержки. Для гуру веб разработок материал, возможно, будет не очень интересен. А для тех, кто хочет такими стать, предлагаю доступное изложение работы механизма авторизации.

Показать скрытое содержание

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

частых вопросах

коротко описаны основные проблемы, хочу показать обоснование.

Как это работает

В своей основе технология веб сайтов (протокол HTTP) не предполагает идентификацию пользователей: соединение с сервером не поддерживается, каждый переход по страницам — новое подключение к веб серверу.
Чтобы различать запросы в php используется механизм сессий. Принцип следующий: при первом заходе на сайт посетителю присваивается уникальный идентификатор (идентификатор сессии, далее PHPSESSID), браузер сохраняет его у себя, сервер хранит некоторую информацию для этого идентификатора (например о том, что он авторизован). Затем при каждом новом переходе вся сохранённая информация (данные сессии) читаются интерпретатором php и передаются скрипту.
А значит проблемы начнутся когда: сервер не выдаст ID, клиент не сохранит ID или сервер не сохранит данные сессии.

Как проверить

PHPSESSID передаётся через заголовки HTTP — эта часть служебной информации, которая не показывается браузером. Для её просмотра нужно использовать специальные инструменты (бесплатные), самые популярные:

прокси сервер Fiddler

, плагины FireFox

FireBug

и

livehttpheaders

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

Через меню инструменты делаю открываю окно «Live HTTP Headers» и делаю первый хит на сайт (все куки очистил):
выставление PHPSESSID в куки

Подсветкой выделил ключевую строку (часть идентификатора скрыл с тем чтобы у особо пытливых читателей не было соблазна ходить под моей сессией).
Здесь сервер указал, что мне следует сохранить в куки PHPSESSID. Если этого не произошло — дальше ничего не пойдёт. Верный признак проблемы: в заголовке нет ни одной записи Set-Cookie. В подавляющем большинстве случаев это говорит о том, что до старта сессии был вывод на экран. После этого php не может изменить заголовки HTTP. Типичный пример из файла /bitrix/php_interface/dbconn.php:

define("CACHED_menu", 3600);
?>

<?
define("BX_FILE_PERMISSIONS", 0644);

Здесь закрывается php тегом ?>, потом идёт перенос строки, который разработчики часто игнорируют, затем продолжение скрипта. Но нельзя забывать, что перенос строки (равно как и пробел) — это начало формирования тела страницы, а значит заголовки HTTP уже выставлены не будут. Тоже самое в начале и конце файла не должно быть никаких посторонних символов. Правильно:

define("CACHED_menu", 3600);
?><?
define("BX_FILE_PERMISSIONS", 0644);

или просто

define("CACHED_menu", 3600);

define("BX_FILE_PERMISSIONS", 0644);

Также надо обратить внимание на файл init.php в этой папке, к нему те же требования.
Может быть ситуация, когда проблема в настройках сервера, это легко проверить нашим скриптом:

bitrix_server_test.php

(чтобы сессии работали на сервере нужна поддержка сессий в php, указана папка сохранения сессий и у php были права на запись в эту папку).

Работа с куками

Кука была сохранена, то на следующий хит браузер должен передать PHPSESSID на сервер.
запрос на сервер с PHPSESSID
Редко встречаются проблемы в работе браузеров, чаще идентификатор не передаётся в результате неправильного сохранения. Поясню. На прошлом изображении в строке Set-Cookie есть запись:
domain=1c-bitrix.ru. Она определяет, на какой домен будет распространяться кука. Для браузеров действуют простые правила безопасности:

— нельзя сохранить куку в другом домене. Например, сайт 1c-bitrix.ru не может выставить куку для домена mail.ru, если домен не будет соответствовать — она просто будет отброшена;
— куки из верхнего домена распространяются на поддомены. Например, указали 1c-bitrix.ru, открываем dev.1c-bitrix.ru или www.1c-bitrix.ru — кука должна передаваться. Наоборот не будет работать: кука домена www.1c-bitrix.ru не подхватится на 1c-bitrix.ru.
— если не указан домен — кука привязывается к текущему домену, но не распространяется на поддомены.

Битрикс указывает домен в куки из настроек сайта. А значит убедитесь, что в настройках сайта указаны правильные домены (поле Доменное имя).

На этот и все последующие хиты в ответе сервера кука PHPSESSID не должна выдаваться:
ответ сервера

Если браузер передал PHPSESSID, а сервер всё равно выдал новый, значит он либо не сохранил сессию у себя (проверить папку и права на неё, часто бывает неправильно указан путь в windows, используются обратные слешы вместо прямых /) либо сессия истекла и сервер её удалил (между хитами должно пройти какое-то время).

Если тест сервера показывает, что сохранение сессий работает, сессии PHPSESSID сохраняется и передаётся, но авторизация всё равно теряется, значит проблема в настройках битрикса. Приходилось сталкиваться с ситуацией, когда интернет-провайдер периодически меняет IP адрес клиента, тогда срабатывает настройка привязки к IP в настройках безопасности группы пользователей. В этом случае следует установить привязку 0.0.0.0.

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

Отсюда:
http://forum.hostdvor.com/viewtopic.php?f=35&p=119
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=35&LESSON_ID=1967 (офсайт)

Форматирование — оригинальное, так что все плевки о грязи в коде — в оригинал.

Ошибка: Не работает авторизация при обмене данными с 1С в Bitrix CMS.

Среда: php 5.3.8 as fcgi SAPI; 

Решение: Часто проблема возникает в результате работы php в режиме FCGI (fast cgi). 
В этом режиме есть проблемы с передачей данных авторизации HTTP в php. Проверить работу HTTP авторизации можете в админ. панели Битрикс -> Рабочий стол -> Настройки -> Инструменты -> Проверка сайта

или по прямой ссылке:

http://имясайта.com/bitrix/admin/site_checker.php

Для решения данной проблемы попробуйте выполнить такие действия:

1) В корне сайта в файл .htaccess добавьте строки:

КОД: ВЫДЕЛИТЬ ВСЁ
RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

2) Закоментируйте следующие строки в файле bitrix/admin/.htaccess, которые отключают mod_rewrite:

КОД: ВЫДЕЛИТЬ ВСЁ
#<ifmodule mod_rewrite.c="">
# RewriteEngine Off
#</ifmodule>

3. В файл bitrix/php_interface/dbconn.php добавьте строки:

КОД: ВЫДЕЛИТЬ ВСЁ
$remote_user = $_SERVER["REMOTE_USER"] 
? $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
$strTmp = base64_decode(substr($remote_user,6));
if ($strTmp)
    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);

Внимание: на сервере должна быть включена поддержка rewrite rules и правил .htaccess.

Интеграция 1С и Bitrix не всегда проходит гладко, даже можно сказать что практически всегда возникают разного рода «подводные камни», с которыми приходится бороться. Вроде сделали всё по документации, но частенько можно столкнуться с разного рода ошибками. Довольно распространённая из них – появление при попытке соединения модуля обмена с сайтом, сообщение вида: «Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль».

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

1. На компьютере, где запускается обмен с 1С — проверяем доступность сайта. 1C использует настройки подключения браузера Internet Explorer, поэтому стоит проверить открывается ли ваш сайт в этом браузере. Добавьте исключение для сайта – бывает соединение блокируется.

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

3. Очень часто бывает проблема с настройками временной зоны сервера базы данных. Т.е. временная зона базы данных должна быть выставлена правильно. Лечится очень просто, открываем файл /bitrix/php_interface/after_connect.php, и дописываем туда строку:

$DB->Query("SET LOCAL time_zone='".date('P')."'");

4. Ещё одна банальная причина – неправильный адрес указан в настройках подключения. Часто бывает ошибка именно в недоступности ссылки по http/https. Путь подключения по умолчанию должен быть такой:

рабочий_протокол://домен_вашего_сайта/bitrix/admin/1c_exchange.php

5. Если вышеуказанное не помогло, так же бывает ошибка может возникать при работе PHP в режиме CGI. В некоторых случаях бывают проблемы с передачей данных авторизации HTTP в PHP. Посмотреть в каком режиме отрабатывает PHP можно через функцию phpinfo() – если в режиме CGI, то будет «Server API: CGI». Простое решение – добавить в .htaccess строки вида:

RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

Далее в файле Bitrix/admin/.htaccess следует закомментировать строки, отключающие mod_rewrite:

#<ifmodule mod_rewrite.c="">
# RewriteEngine Off
#</ifmodule>

После этого в файле bitrix/php_interface/dbconn.php добавляем строки:

$remote_user = $_SERVER["REMOTE_USER"] 
? $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
$strTmp = base64_decode(substr($remote_user,6));
if ($strTmp)
    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);

Стоить помнить, что описанное в этом пункте – это так называемый «костыль», по-хорошему лучше понастроить сервер под Bitrix или обратиться к тех поддержке хостинга.
Тут собраны самые распространённые причины данного вида ошибки. Если вы решили свою проблему иным путём, делитесь им в комментариях.

Разместили проект не на выделенке, а на шареде. В целях, известных одному

Богу

хостеру, php там бегает не как mod_php, а как php-cgi/fcgi.

Сразу же после размещения проекта на хостинге советую проверить настройки сайта — /bitrix/admin/site_checker.php?lang=ru

По результатам проверки на себя обратила внимание ошибка HTTP-авторизации, в связи с тем, что в ее описании отмечено, что она мешает обмену с базой 1С и «другому функционалу».

И действительно — выгрузка не идет. Причина — скорее всего в отсутствии HTTP-авторизации. Решение для починки следующее:
1. Убеждаемся что на сервере есть mod_rewrite и прописываем в .htaccess строки:

RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

Вообще, в .htaccess, поставляемом с Битриксом эти строки уже есть, но убедиться лишний раз стоит.

2. Далее отключаем отключение (!) реврайта в административном разделе: комментируем в /bitrix/admin/.htaccess весь блок с модулем mod_rewrite:

#<ifmodule mod_rewrite.c>
# RewriteEngine Off
#</ifmodule>

3. В init.php дописываем код:

$remote_user = $_SERVER["REMOTE_USER"]? 
    $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
$strTmp = base64_decode(substr($remote_user,6));
if ($strTmp)
    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = 
        explode(':', $strTmp);

Можно пробовать выгрузку. В моем случае все заработало.

Решение взято с сайта битрикса, там же описано еще несколько типовых проблем с выгрузкой из 1С.


Проблема авторизации в Битрикс

Проблема авторизации в Битрикс

14.08.2015

Во время администрирования сайта столкнулся с тем, что не работает авторизация в систему управления сайта Битрикс. С чем же может быть связано не вхождение в систему?

Характерные признаки проблемы:

  • Появляется урл вида: bitrix/admin/index.php?_r=3456#authorize где r=3456 меняется на любое число с каждой попыткой
  • Ошибок никаких не выдает
  • Вирусов и внедрений на сайте нет.

Основные признаки: похоже на проблему сохранения сессии

Решение проблемы:

В этом конкретном случае сессии хранятся в БД (таблица b_sec_session). Она была повреждена и авторизация не срабатывала. После исправления таблицы авторизация работает.

Нужно восстановить только одну таблицу в базе данных b_sec_session, поможет команда: mysqlcheck -r db_name table_name -uroot -p 

После восстановления таблицы получил такую ошибку (до этого ошибки не выдавались):

BitrixMainDBSqlQueryException] 

Mysql query error: (145) Table './.../b_sec_session' is marked as crashed and should be repaired (400)

SELECT 

`security_session`.`SESSION_DATA` AS `SESSION_DATA`

FROM `b_sec_session` `security_session` 

WHERE `security_session`.`SESSION_ID` = 'l5fvkBD94rIlLuP05j16I0VvEM7ZfncC'

LIMIT 0, 1

После этого полностью очистил таблицу b_sec_session и смог авторизоваться

очистка сессий для решения проблемы авторизации в битрикс.png

После очистки таблицы также можно будет авторизоваться и исправить повреждения таблицы с помощью встроенных инструментов проверки системы

восстановление таблиц.png

С чем это связано и как избежать в будущем?    

Таблицы в БД могут повреждаться по разным причинам, лучше уточнить этот момент у администратора сервера/хостинга.

Чтобы увеличить надежность таблиц рекомендуется перевести их в формат InnoDB вместо MyISAM (если эта возможность поддерживается на хостинге). Модуль «монитор производительности» позволяет выполнить эту операцию из административного интерфейса.

Вот ещё чек-лист возможных проблем если пропадает авторизация

https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=35&LESSON_ID=2167&LESSON_PATH=3906.4503.2167

Ещё статьи:

18.01.2023
Нюансы перехода битрикс на РНР 8.0
С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
Но без нюансов и ошибок…
ID: 431

10.01.2023
БУС окончательно всё?
Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б…
ID: 426

30.08.2022
Типовые претензии к подрядчику и к битрикс
По свежим следам я собрал типовые претензии к подрядчику и к битрикс. Мной был проведён аудит и я увидел, что техническое состояние сайта хорошее, нареканий…
ID: 338

Новые статьи в блоге:

Возврат к списку

hero:
но хостер мне написал дословную цитату выше, и на данный момент проблема в синтаксисе htaccess скорее у меня..

Все необходимые для работы изменения в .htaccess в доках описаны. А для запроса basic-авторизации есть и «другие места» кроме .htaccess

header('WWW-Authenticate: Basic realm="My Realm"');

hero:
Мы поменяли тариф у Агавы и прописали все согласно инструкциям,

т.е. при изменении тарифа файлы менялись (зачем, если всё работало раньше?)? Переезд был? В смысле, пути к файлам сменились? Версии софта, возможно, поменялись? IP-шник сменился? Кэш DNS на машине с 1С обновился?

p.s. Если прописали всё согласно инструкциям — должно работать.. За подробностями — если не к телепатам, то, возможно, к «битриксоидам» — возможно угадают быстрее.

p.p.s. я всё-таки отвечу на конкретный вопрос..

hero:
Подскажите что-как с прописанием юзера в хтакцесс..

Один из распространённых вариантов — указание пользователей через htpasswd файл и добавлением в .htaccess блока


AuthType Basic
AuthName AnyText
AuthUserFile /full-path-to/.htpasswd
require valid-user

p.p.p.s Если нет опасений — кидай доступы (к сайту, не к 1с) в личку.. а то так долго можно гадать, пока админ не объявится

17.03.2021
4453
Блог Интегратора

Вопросы надежности и безотказности работы программного обеспечения, помогающего развитию бизнеса, всегда стоят очень остро. Любые, даже самые незначительные ошибки в конечном итоге приводят к неприятностям и упущенной выгоде. Несмотря на то, что поставщики ПО прилагают большие усилия для того, чтобы избежать ошибок в работе своего продукта: активно тестируют приложения перед запуском, своевременно исправляют найденные недочеты — не всегда все бывает гладко.

Иногда возникают ситуации, когда поставщик ПО в силу разных причин не может быстро исправить проблему. Вместо этого он предлагает решения, которые могут быть выполнены пользователем самостоятельно. Конечно, это не относится к серьезным ошибкам, способным повлиять на безопасность или серьезно подорвать работу предприятия — чаще всего речь идет о неприятных мелочах, которые сильно раздражают, а в определенных случаях могут стоить потери клиентов.

Одной из таких ошибок является проблема с авторизацией в продуктах Битрикс. Она заключается в том, что в любой момент у пользователя портала может слететь авторизация и его выбросит из системы. Ошибка не представляет никакой опасности с точки зрения безопасности, но доставляет массу неприятностей работающим в системе людям. Сотрудники сбиваются с толку, отлаженный рабочий процесс начинает прерываться этой ошибкой.

Почему так происходит и что делать?

С подобной неприятной ситуацией к нам обратился один из наших клиентов. У сотрудников периодически слетала авторизация во время работы на портале «Битрикс». Мало того, что это оказывало негативное влияние на весь рабочий процесс, так еще и пугало. Что первым делом подумает менеджер, которого во время работы выбрасывает из системы? Что случилось что-то ужасное — его взломали, что все работает неправильно. Вылеты происходили из любого места: сайта, CRM-системы, подключенных приложений.

Отсутствует соединение с сервером из-за проблем с куки в Битрикс24

Когда мы начали разбираться, то выяснилось, что все предложенные поставщиком сервиса стандартные методы решения такой проблемы не дают никакого результата. Авторизация по-прежнему случайным образом слетала, и мы не могли найти этому никакого объяснения. Пришлось начать разбираться более серьезно и потратить на это большое количество времени. В итоге мы выявили причину и смогли повторить ее: проблема оказалась в переменной в cookie, и она актуальна для большинства систем, установленных на одном домене.

Подробное объяснение проблемы и решение

Как мы уже писали выше, эта ошибка связана с дублированием переменной PHPSESSID в cookie. Она возникает в том случае, когда для установки различных продуктов Битрикс используются поддомены одного домена. В качестве примера рассмотрим установку «1С-Битрикс: Управление сайтом» и «1С-Битрикс24: CRM».

Конфликт куков на сайтах Битрикс на одном домене

Допустим, что в нашем распоряжении находится домен webmagazin.ru, на который мы устанавливаем «1С-Битрикс: Управление сайтом», а для установки CRM-системы мы будем использовать crm.webmagazin.ru. Это как раз тот случай, при котором возможны рандомные вылеты авторизации в системе. Никакие решения, предложенные в Битрикс, в нашем случае не помогали.

В процессе тестирования различных вариантов мы пришли к мнению, что в настоящее время лучшим решением является перенос продуктов на разные домены. К примеру: устанавливаем «1С-Битрикс: Управление сайтом» на webmagazin.ru, а для размещения CRM-системы используем отличный от webmagazin домен второго уровня. Например, webcrm.ru. На данный момент это единственное эффективно работающее средство, помогающее раз и навсегда избавиться от этой проблемы.

Насколько сложно все исправить?

Если у вас возникли проблемы с авторизацией: пользователей выбрасывает из системы, или они по нескольку раз не могут войти в нее, убедитесь, что ваши продукты установлены с соблюдением вышеупомянутых условий — разнесены по разным доменам. Если нет — не страшно. Мы сможем разнести по разным доменам установленные продукты «Битрикс» в самые короткие сроки без необходимости прерывать рабочие процессы, менять привычки, самостоятельно перенастраивать автоматизацию. Все будет работать так же как и прежде, за исключением того, что пропадет ошибка, вызывающая слет авторизации у сотрудников.

Мы более 10 лет занимаемся разработкой, доработкой, а также поиском и устранением ошибок в продуктах «Битрикс». У нас большой опыт, можно сказать, что мы знаем систему изнутри, в мельчайших деталях. Более того, мы не прекращаем ни на минуту совершенствовать свои знания о ней — мы развиваемся вместе с ней. Именно поэтому вы всегда знаем ответы на вопросы, которые не знают другие, а если готовых ответов нет — мы сами находим ответы.

Как починить авторизацию, которая начала постоянно слетать после обновления Битрикс


Обновлено: 23 апреля 2021


9491 просмотр

После очередного обновления Битрикса в ноябре 2020 г. пользователи сталкиваются со «слётом» авторизации практически сразу после ввода пароля, то есть их разлогинивает сразу после авторизации.

Проблема с задвоением PHPSESSID (идентификатор сессии php появлялся в cookies браузера дважды) серьёзна, так как у простых посетителей задача «выполнить очистку cookies в браузере» вызовет ступор, а без этого они не смогут нормально авторизоваться.

Поэтому надо инициировать удаление лишних данных из cookie со стороны сервера, для этого впишите куда-нибудь в файл /bitrix/php_interface/dbconn.php (заменив www.site.ru из примера на свой домен):

  • Если вы не используете многосайтовость, а поле «Доменное имя» было до ноябрьского обновления заполнено, и после вы его очистили (как рекомендует статья), то надо удалить куку с точкой в начале
  • setcookie("PHPSESSID", "", 777, "/", ".www.site.ru");
  • Если вы используете многосайтовосить или решили не очищать поле «Доменное имя», тогда надо удалить куку без точки — впишите (строго без какого-либо имени домена):
  • setcookie("PHPSESSID", "", 777, "/");

    Если вам пришла идея переопределить название идентификатора «PHPSESSID» на уровне настроек PHP, что бы обойти проблему — это плохая идея, которая вызовет трудноотлавливаемые проблемы.

    Надеюсь, эта статья помогла решить вашу проблему!

    Отсюда:
    http://forum.hostdvor.com/viewtopic.php?f=35&p=119
    http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=35&LESSON_ID=1967 (офсайт)

    Форматирование — оригинальное, так что все плевки о грязи в коде — в оригинал.

    Ошибка: Не работает авторизация при обмене данными с 1С в Bitrix CMS.

    Среда: php 5.3.8 as fcgi SAPI; 

    Решение: Часто проблема возникает в результате работы php в режиме FCGI (fast cgi). 
    В этом режиме есть проблемы с передачей данных авторизации HTTP в php. Проверить работу HTTP авторизации можете в админ. панели Битрикс -> Рабочий стол -> Настройки -> Инструменты -> Проверка сайта

    или по прямой ссылке:

    http://имясайта.com/bitrix/admin/site_checker.php

    Для решения данной проблемы попробуйте выполнить такие действия:

    1) В корне сайта в файл .htaccess добавьте строки:

    КОД: ВЫДЕЛИТЬ ВСЁ
    RewriteEngine on
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

    2) Закоментируйте следующие строки в файле bitrix/admin/.htaccess, которые отключают mod_rewrite:

    КОД: ВЫДЕЛИТЬ ВСЁ
    #<ifmodule mod_rewrite.c="">
    # RewriteEngine Off
    #</ifmodule>

    3. В файл bitrix/php_interface/dbconn.php добавьте строки:

    КОД: ВЫДЕЛИТЬ ВСЁ
    $remote_user = $_SERVER["REMOTE_USER"] 
    ? $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
    $strTmp = base64_decode(substr($remote_user,6));
    if ($strTmp)
        list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);

    Внимание: на сервере должна быть включена поддержка rewrite rules и правил .htaccess.

    Если пропадает авторизация пользователя

    Урок
    65
    из
    932

    Сложность урока:

    4 уровень — сложно, требуется сосредоточиться, внимание деталям и точному следованию инструкции.


    4 из 5

    Дата изменения:
    23.05.2023

    Просмотров:
    101282

    Недоступно в лицензиях:

    Текущую редакцию Вашего 1С-Битрикс можно просмотреть на странице Обновление платформы (Marketplace > Обновление платформы).


    Ограничений нет

    Если пропадает авторизация пользователя

    Возможные причины проблемы:

    1. Лишние переносы строк (или иные символы) в скриптах конфигурации.

    2. Файлы с сессиями продукта создаются, но PHP не хватает прав, чтобы к ним обратиться.

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

    4. Значение параметра Маска сети для привязки сессии в настройках безопасности группы пользователей.

    5. Значение параметра session.cookie_domain в файле php.ini на сервере.

    6. Неверно прописан домен в настройках главного модуля и для сайта отдельно.

    7. При переносе сайта не скопировался файл /.access.php.

    8. При многосайтовости вас выкидывает на форму авторизации при переходе по публичным страницам сайта.

    9. Авторизация не учитывается на вашем домене.

    10. Проблема в работе сервера (нужна поддержка сессий в php, должна быть указана папка сохранения сессий и права на запись в эту папку).

    11. Проблемы авторизации при поддоменности на разных установках

    Примечание: если работа в административном режиме прерывается появляющейся формой авторизации, то чтобы дать себе возможность что-то поправить в настройках сайта, после авторизации не совершайте никаких действий порядка 10-30 секунд, и, возможно, форма авторизации не появится.

    Разместили проект не на выделенке, а на шареде. В целях, известных одному

    Богу

    хостеру, php там бегает не как mod_php, а как php-cgi/fcgi.

    Сразу же после размещения проекта на хостинге советую проверить настройки сайта — /bitrix/admin/site_checker.php?lang=ru

    По результатам проверки на себя обратила внимание ошибка HTTP-авторизации, в связи с тем, что в ее описании отмечено, что она мешает обмену с базой 1С и «другому функционалу».

    И действительно — выгрузка не идет. Причина — скорее всего в отсутствии HTTP-авторизации. Решение для починки следующее:
    1. Убеждаемся что на сервере есть mod_rewrite и прописываем в .htaccess строки:

    RewriteEngine on
    RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]

    Вообще, в .htaccess, поставляемом с Битриксом эти строки уже есть, но убедиться лишний раз стоит.

    2. Далее отключаем отключение (!) реврайта в административном разделе: комментируем в /bitrix/admin/.htaccess весь блок с модулем mod_rewrite:

    #<ifmodule mod_rewrite.c>
    # RewriteEngine Off
    #</ifmodule>

    3. В init.php дописываем код:

    $remote_user = $_SERVER["REMOTE_USER"]? 
        $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
    $strTmp = base64_decode(substr($remote_user,6));
    if ($strTmp)
        list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = 
            explode(':', $strTmp);

    Можно пробовать выгрузку. В моем случае все заработало.

    Решение взято с сайта битрикса, там же описано еще несколько типовых проблем с выгрузкой из 1С.

    Понравилась статья? Поделить с друзьями:
  • Битрикс 24 почта ошибка подключения к серверу
  • Бинар ошибка h20
  • Битрикс 24 ошибка создания звонка код ошибки 8
  • Бинар ошибка h11
  • Битрикс 24 отправка почты ошибка не работает