Configure o cabeçalho no apache se ele ainda não existir

11

Eu tenho um proxy que está injetando alguns cabeçalhos, mas quero modificá-lo para que ele só defina os cabeçalhos se eles ainda não estiverem presentes:

<Location /api>    
    RequestHeader set MY_HEADER "value"

    ProxyPass http://127.0.0.1:8000/api
    ProxypassReverse http://127.0.0.1:8000/api
</Location>

Isso é possível?

    
por Hobozilla 03.07.2013 / 11:42

3 respostas

3

No Apache 2.4.7, x86_64, Ubuntu 14.04 LTS

Eu descobri que isso funciona

RequestHeader setIfEmpty X-Forwarded-For "127.0.0.1"

funciona o dia todo. No entanto, se alguém tentar usar um valor dinâmico,

RequestHeader setIfEmpty X-Forwarded-For "%{REMOTE_ADDR}e"

não funciona. Eu descobri que você precisa da ajuda de mod_rewrite para coletar o valor. Minha configuração agora é assim e funciona.

RewriteRule . - [E=noxff:%{REMOTE_ADDR}] RequestHeader setIfEmpty X-Forwarded-For "%{noxff}e"

Eu sei que é stoopid, mas funciona.

    
por 23.08.2015 / 21:42
7

Que tal algo como:

RequestHeader set X-My-Header "value" expr="req('X-My-Header')==''"

Consulte o link para obter mais informações sobre a expr = sintaxe.

Editar: No Apache 2.2 você deve ser capaz de fazer isso:

SetEnvIf X-My-Header "" no_my_header
RequestHeader set X-My-Header "value" env=no_my_header
    
por 03.07.2013 / 12:00
2

Apache 2.4.7

Header setifempty Access-Control-Allow-Origin "*"

Apache 2.2.4 abaixo

Header append Access-Control-Allow-Origin ""
Header edit Access-Control-Allow-Origin "^$" "*"
    
por 28.07.2015 / 21:38