A maneira mais fácil de encontrar isso é soltando mod_php
e usando um script CGI. Isso permite que você chame php-cgi
(uma versão direcionada a CGI do interpretador PHP) de um script de shell que é executado no carregamento da página.
Aqui está um exemplo de script bash que define as variáveis de ambiente SERVER_PORT
e HTTPS
com base no cabeçalho X-Forwarded-Proto
e, em seguida, chama php-cgi
:
#!/bin/bash
# HTTPS fix (WARNING: THIS HEADER CAN BE FAKED BY THE CLIENT)
if [[ "$HTTP_X_FORWARDED_PROTO" == "https" ]]; then
export SERVER_PORT=443
export HTTPS="on"
else
export SERVER_PORT=80
fi
php-cgi
É claro que você deve ter cuidado, porque o cabeçalho X-Forwarded-Proto pode ser enviado pelo cliente, então, a menos que você tenha algo entre o Apache e o cliente que limpa esse cabeçalho, você não deve confiar nele! (você provavelmente também quer desligar o Apache, ou melhor ainda, apenas escutar em loopback)
Tudo o que você precisa fazer é fazer com que o Apache use este script bash para cada arquivo com a extensão .php
( mod_cgi
e mod_actions
permitem fazer isso).