Нет, не я ;) . Это код взят из кода форума xenforo 1.4.4 и он отвечает за http/https.
Но не переопределяйте суперглобальную переменную - вы этим не избавляетесь от истинной причины проблемы, вы только маскируете ее.
Поясню. Что перевести vbulletin на https, достаточно просто указать ulr форума в виде
. Это переменная bburl, от которой потом строятся все остальные ссылки, как-то ссылки на css, js, навигация и так далее. Если же в xenforo указать урл форума с протоколом https, то xenforo все равно при определенных условиях упрямо будет продолжать генерировать ссылки в http (см код выше). Это приведет к тому, что при обращению по https браузер может не загружать (как небезопасные элементы) скрипты, стили и так далее.
Теперь нарисую такую картину, проксирование https -> cloudflare -> http (так называемый режим
). Это рядовая ситуация для всех желающих обзавестись https, у которых по техническим причинам нет возможности поднять https -> cloudflare -> https (например, обычный виртуальный хостинг, где за выделенный ip нужно платить, а SNI не поддерживают). Или VDS-ка слабенькая, и ресурсов впритык. В этом случае SERVER['HTTPS'] или будет отсутствовать (nginx) или будет в off (apache), следовательно из-за этого кода выше, движок сам перейдет на http - уж так он написан, выдаст http -> браузер в https не загрузит css, js, прочее и тут уже редирект не поможет, т.к. браузер может просто не отравлять запрос на http (зависит от его настроек)
Таким образом, то что я в булке делаю через определение bburl, в xenforo я вынужден либо переопределять SERVER['HTTPS'] или влазить в код движка. И это более универсальное решение, чем редирект.
PS: про настройку сервера много чего можно рассказывать, но тут нужно помнить, что движок создается для массового использования и должен работать в самых разнообразных условиях. Все эти костыли - неизбежная расплата за универсальность.
PSS: по хорошему указанный код служит для того, что бы автоматически переходить на https, если к нему обращаются по этому протоколу. Например, еще один вариант применения - в случае нехватки ресурсов, использовать https только для авторизации, когда идет передача чувствительных данных, все остальное время работая на менее ресурсоемком http.