Como testar corretamente se o url está em HTTPS com PHP

Provavelmente, seu aplicativo estará sob um balanceador de carga quando em produção. Se você precisar testar se o url é HTTPS com PHP, você provavelmente usará env (‘HTTPS’), mas sob um balanceador de carga que não funcionará.

Você precisará verificar a variável de servidor HTTP X FORWARDED_PROTO.

É claro que testar isso em seu ambiente local pode ser doloroso, mas aqui está uma pequena dica que faz maravilhas. Altere seu http-ssl.conf e em seu host virtual adicione:

RequestHeader definiu X-Forwarded-Proto “https”

Isso adicionará automaticamente o HTTP X FORWARDED_PROTO no cabeçalho de resposta do Apache ao seu aplicativo.

A mesma lógica pode ser usada para outras respostas de cabeçalho do Apache.