一部のヘッダーを挿入するプロキシがありますが、ヘッダーがまだ存在しない場合にのみヘッダーを設定するように変更します。
<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
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 "^$" "*"