Como definir dinamicamente o cabeçalho HTTP no Apache 2.2?

5

Parece que isso deve ser fácil, mas não consigo descobrir a sintaxe. No Apache, quero usar o valor de um cabeçalho de solicitação existente para definir um novo cabeçalho de solicitação. Algum código não funcional simples que ilustra o que eu gostaria de fazer:

RequestHeader set X-Custom-Host-Header "%{HTTP_HOST}e" 

Idealmente, isso criaria um novo cabeçalho HTTP na solicitação chamada "X-Custom-Host-Header" que contém o valor do cabeçalho do Host existente. Mas isso não acontece. Talvez eu precise copiar o cabeçalho existente em uma variável de ambiente primeiro? (Se assim for, não consigo descobrir como fazer isso.)

Eu sinto que estou sentindo falta de algo óbvio, mas passei por cima dos documentos do Apache e não consigo entender. Obrigado por qualquer ajuda.

    
por sysadmin1138 13.12.2009 / 01:57

1 resposta

13

O FOOBAR em %{FOOBAR}e deve ser uma variável de ambiente, mas HTTP_HOST é uma variável de servidor.

Se você realmente quiser fazer isso, tente:

RewriteRule (.*) $1 [E=custom_host:%{HTTP_HOST}]
RequestHeader set X-Custom-Host-Header "%{custom_host}e"

ou

RewriteCond %{HTTP_HOST} (.*)
RewriteRule (.*) $1 [E=custom_host:%1]
RequestHeader set X-Custom-Host-Header "%{custom_host}e"

ou

SetEnvIf Host (.*) custom_host=$1
RequestHeader set X-Custom-Host-Header "%{custom_host}e"

Tudo não testado.

Não tenho certeza do primeiro, mas o segundo e o terceiro devem funcionar.

    
por 13.12.2009 / 19:33