回答:
Apache 2.2では、ProxyPreserveHost
no-ディレクティブはサーバー構成または仮想ホストのコンテキストでのみ有効です。異なるProxyPass
ステートメントを異なる仮想ホストに置く必要があります。
Apache 2.4では、はい- ディレクトリコンテキストがディレクティブに追加されたので、次のようなことができます。
<Location /to-varnish/>
ProxyPreserveHost On
ProxyPass http://127.0.0.1:8000/to-varnish/
</Location>
<Location /to-third-party/>
ProxyPreserveHost Off
ProxyPass http://third-party-site.com/
</Location>
ソリンの返答に賛成できない...
Apache 2.2を実行しているローカルの状況では、プライマリアプリはログインするためにproxypreservehost(CQ / AEM作成者)を必要としますが、プロキシするパートナーはホストヘッダーにホストを必要とします。
ただし、正規表現を使用してこれを行う必要はありません<Location...>
。通常の方法で問題ありません。
ドキュメントから(http://httpd.apache.org/docs/2.2/mod/core.html#location):
このディレクティブは、囲まれたディレクティブのスコープをURLで制限します。
このソリューションは私たちにとってうまくいきます:
<Location /[path]/ >
RequestHeader set Host [thirdparty]
</Location>
RewriteRule ^/[path]/(.*) https://[thirdparty]/$1 [P,NC,L]
これにより、このリクエストのホストヘッダーがパートナーのホスト名に設定されます。
それが整ったら、引き続きCQ / AEM作成者にログインし、予想されるホストヘッダーを使用してパートナーサービスにプロキシできます。