헤더를 주입하는 프록시가 있지만 헤더가 아직없는 경우에만 헤더를 설정하도록 수정하고 싶습니다.
<Location /api>
RequestHeader set MY_HEADER "value"
ProxyPass http://127.0.0.1:8000/api
ProxypassReverse http://127.0.0.1:8000/api
</Location>
이게 가능해?
답변
Apache 2.4.7, x86_64, Ubuntu 14.04 LTS에서
나는 이것이 작동한다는 것을 발견했다
RequestHeader setIfEmpty X-Forwarded-For "127.0.0.1"
하루 종일 작동합니다. 그러나 동적 값을 사용하려고하면
RequestHeader setIfEmpty X-Forwarded-For "%{REMOTE_ADDR}e"
작동하지 않습니다. 값을 얻으려면 mod_rewrite의 도움이 필요하다는 것을 알았습니다. 내 구성은 이제 다음과 같으며 작동합니다.
RewriteRule . - [E=noxff:%{REMOTE_ADDR}]
RequestHeader setIfEmpty X-Forwarded-For "%{noxff}e"
나는 그것이 바보라는 것을 알고 있지만 효과가 있습니다.
답변
어때요?
RequestHeader set X-My-Header "value" expr="req('X-My-Header')==''"
expr = 구문에 대한 자세한 정보는 http://httpd.apache.org/docs/current/expr.html 을 참조 하십시오 .
편집 : Apache 2.2에서는 다음을 수행 할 수 있어야합니다.
SetEnvIf X-My-Header "" no_my_header
RequestHeader set X-My-Header "value" env=no_my_header
답변
아파치 2.4.7
Header setifempty Access-Control-Allow-Origin "*"
아파치 2.2.4 이하
Header append Access-Control-Allow-Origin ""
Header edit Access-Control-Allow-Origin "^$" "*"