Tarde, mas ainda assim, acabei de lidar com o mesmo problema, e isso funcionou para mim:
RequestHeader set X_FORWARDED_PROTO 'https' env=HTTPS
A documentação diz:
Quando a diretiva RequestHeader é usada com o argumento add, append ou set, um quarto argumento pode ser usado para especificar condições sob as quais a ação será executada. Se a variável de ambiente especificada no argumento env = ... existir (ou se a variável de ambiente não existir e env =! ... for especificada), a ação especificada pela diretiva RequestHeader entrará em vigor. Caso contrário, a diretiva não terá efeito sobre a solicitação.
Enquanto a variável de ambiente HTTPS é configurada apenas quando a solicitação é feita por SSL.
Você não quer isso; definiria o cabeçalho como "HTTP / 1.1" (mesmo em uma solicitação https) - provavelmente não é muito útil para o que você está passando.
Você tem diferentes blocos do VirtualHost para http e https; apenas codifique a
RequestHeader
configuração em cada uma.fonte
Você pode corrigir isso usando a
early
palavra-chave:Caso contrário, você pode fazer o que John Crenshaw sugeriu, que é o uso em
RewriteRule
vez deProxyPass
diretivas.fonte
Encontrou a causa. Acontece que é uma questão de ordem de operações. O mod_rewrite é responsável por fornecer essas variáveis de ambiente, mas o Apache não o processa até APÓS o tratamento de quaisquer solicitações do ProxyPass. Até lá, ele apenas definirá nulo. A única solução alternativa parece ser fazer a proxy via mod_rewrite.
Consulte http://www.gossamer-threads.com/lists/apache/users/267160?do=post_view_threaded#267160
fonte