Достаточно создать файл: /home/bitrix/www/.htsecure
Даже скажу чуть больше. Ошибка 400 возникает (по крайней мере у нас) когда вы пытаетесь обратиться с портом 443 по протоколу httP или по порту 80 с httPS. У вас даже в Location: http://test.com:443/xyz/ прописано
только приводит к принудительному редиректу на ssl схему if (-f /home/bitrix/www/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
а тут речь про то что если запрос идет к папке, но без слеша на конце к примеру, вместо запроса https://test.com/xyz/ - где xyz папка в ФС, делаем запрос https://test.com/xyz,
Даже скажу чуть больше. Ошибка 400 возникает (по крайней мере у нас) когда вы пытаетесь обратиться с портом 443 по протоколу httP или по порту 80 с httPS.
согласен, то же решение, его рассматривали, но, не хотелось бы терять доли секунды на редиректы, причину оставлю не расскрытой но она думаю и без того очевидна.
к сожалению на данный момент нет времени углубится снова в проблему, точно знаю что виной всему апач
при proxy_set_header Host $host; proxy_set_header HTTPS YES;
так как ему передается HTTPS on и хост в нормальном виде, но он почему то игнорирует "HTTPS on" и при построении ссылки редиректа использует не схему https:// а просто схему http:// .....
Sometimes, the server runs behind a device that processes SSL, such as a reverse proxy, load balancer or SSL offload appliance. When this is the case, specify the https:// scheme and the port number to which the clients connect in the ServerName directive to make sure that the server generates the correct self-referential URLs.
пс... вот пл*ть ругаться хочется... передактируешь сообщение и оно после сохранения плывет по количеству переводов строк ... это крик к битрикс-разработчикам сия чада
Такая же проблема, но проявляется только при явном присутствии index.php в запросе
Все способы из обсуждения попробовал, не помогает. Причем проявляется не везде, с mac os работает норм, на винде и айфоне - отрабатывает какой-то редирект и ошибка вылезает
Директиву прописывали на самом верхнем nginx в конфиге, работающем как реверс-прокси для bitixvm. Соответственно, можно использовать и внутри bitrixvm, если в правильном месте. Предыдущие решения не помогали полностью, например форма обратной связи или заказ звонка все равно выбрасывали на http://xxx:443
в настройку ssl.[yoursite].conf у nginx'a у меня заработало, автору методы - огромная благодарность, но метод имхо костыльный(подмена error page), рекомендую использовать битрикс-вмку - там нет таких проблем (если только нет возможности переезда, как у меня пока что)
Алексей Креймер написал: кстати, теперь можно и вот так:Кодproxy_set_header Host $http_host;
Если это в апач прописать, то он не перезапускается:
Цитата
Starting httpd: Syntax error on line 9 of /etc/httpd/bx/conf/bx_ext_xxxxxx.ru.conf: Invalid command 'proxy_set_header', perhaps misspelled or defined by a module not included in the server configuration [FAILED]
А если в nginx исправить эту строчку, то получаем ошибку в браузере:
Цитата
Сайт fwdlab.ru выполнил переадресацию слишком много раз.
Столкнулся с такой же проблемой - при обращении к domain.ru/bitrix выдает в URL domain.ru:443/bitrix/ , описанные выше решения не совсем подошли - в апаче mod_dir не портил ничего, return 497 код не отработал. Решил в итоге проблему так.
На nginx , который проксирует на виртуалку с битриксом, конфиг такой:
Это фундаментальная ошибка самой битрикс ВМ, мало того этим грешат почти все веб сервера. Единственное адекватное решение это переделать конфиги и создать полноценный бэкэнд на https, только в таком случае можно гарантированно получить адекватный ответ. Соответственно ключи прописывать там и там . В результате у вас получится к примеру 80 -> 82 443 -> 4443 - сертификаты на обоих сторонах не забывайте что на сороне http так же работает js ajax и тд, так же затрагивающее протокол, и валидно они будут со 100% гарантией работать только так