我有一个代理注入一些头,但我想修改它,所以它只设置头,如果他们不存在:
<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"
整天工作。 但是,如果试图使用dynamic值,
RequestHeader setIfEmpty X-Forwarded-For "%{REMOTE_ADDR}e"
不起作用。 我发现你需要mod_rewrite的帮助来收获价值。 我的configuration现在看起来像这样,它的工作原理。
RewriteRule . - [E=noxff:%{REMOTE_ADDR}] RequestHeader setIfEmpty X-Forwarded-For "%{noxff}e"
我知道这是stoopid,但它的作品。
感觉如何?
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
Apache 2.4.7
Header setifempty Access-Control-Allow-Origin "*"
下面的Apache 2.2.4
Header append Access-Control-Allow-Origin "" Header edit Access-Control-Allow-Origin "^$" "*"