Что делать если после переезда на https упала выгрузка с 1С. Битрикс

Что делать если после переезда на https упала выгрузка с 1С

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

О выгрузке (обмене с сайтом)

Как вы поняли из заголовка, речь сейчас идёт о сайте под управлением CMS «1С Битрикс Управление сайтом», так что я пишу эту статью с поправкой, что речь идёт о конкретной CMS.

Чтобы 1С выгружал на сайт, ему нужно обратиться к файлу, который расположен по адресу /bitrix/admin/1c_exchange.php относительно корня сайта. Следовательно, чтобы выгрузка заработала, нужно чтобы этот файл был доступен по http.

Редирект

Допустим вы пользуетесь вот таким редиректом:

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

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

Чтобы выгрузка заработала нужно редирект изменить на этот:

RewriteCond %{SERVER_PORT} !^443$ 
RewriteCond %{REQUEST_URI} !/bitrix/admin/1c_exchange.php 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Тогда ваш файл станет доступен по http и выгрузка снова заработает.

Ещё пример:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteCond %{REQUEST_URI} !/bitrix/admin/1c_exchange.php
RewriteRule ^(.*)$ https:// example.com/$1 [R=301,L]

Тут уже пример, в котором учтён редирект с www.

Способ для IP

Вы можете сделать доступным сайт по http не только для одного файла, но и для целого сайта пользователю с определённым IP. Я считаю, что это более безопасный способ, но у него есть и недостаток. Вам нужен статический IP, что не всегда возможно, например, если в вашей компании стоит балансировщик нагрузки на сеть и вы можете подключиться под разным ip. Для пользователей ноутбуков это будет не актуально, т.к. они подключаются из разных сетей.

Редирект для исключения по IP, пример

RewriteCond %{HTTP:X-Forwarded-Proto} !=https [OR]
RewriteCond %{HTTP_HOST} ^www.example.ru$ [NC] [OR]
RewriteCond %{REMOTE_ADDR} !=178.110.15.26
RewriteRule ^(.*)$ https://example.ru/$1 [R=301,L]

не забываем поставить свой ip

Для 1С

Как я уже упоминал, приведённые примеры должны быть временными решениями. Следовательно, нужно чтобы были проведены изменения настроек в 1С. О настройках сертификатов вы можете прочитать в статье по ссылке.

P.S

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

Работаем на Битрикc и у нас всё будет хорошо. А пока подписывайтесь на мой ВК и Instagramm (ссылки в подвале), пользуйтесь моим сервисом строки, ищите вхождения ключевых фраз. Поддержите проект, зарегистрируйтесь по реферальной ссылке на хостинге beget. Он действительно классный, о нём вы можете прочитать в этом отзыве.