Достаточно создать файл: /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.
пс... вот пл*ть ругаться хочется... передактируешь сообщение и оно после сохранения плывет по количеству переводов строк ... это крик к битрикс-разработчикам сия чада