Из коробки 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.
Вы можете сделать доступным сайт по http не только для одного файла, но и для целого сайта пользователю с определённым 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С. О настройках сертификатов вы можете прочитать в статье по ссылке.
Если вы прочитали статью до конца, то напишите в комментарии пригодился бы вам инструмент для массовой проверки редиректов. Заранее спасибо!)
Работаем на Битрикc и у нас всё будет хорошо. А пока подписывайтесь на мой ВК и Instagramm (ссылки в подвале), пользуйтесь моим сервисом строки, ищите вхождения ключевых фраз. Поддержите проект, зарегистрируйтесь по реферальной ссылке на хостинге beget. Он действительно классный, о нём вы можете прочитать в этом отзыве.