環境 http://etrafficcontrol.com/misc/proxy.png
2つのアプリケーションがあります。1 つは AWS でホストされている e コマース サイト (LAMP 上で動作する Drupal 7) であり、もう 1 つは IIS-6 上の ASP であり、社内にあり、SSL を必要とするチェックアウト システムです。
現在、お客様がチェックアウトのために別のドメインに転送される状況に我慢しています。これは、ebay や PayPal で起こるようなものです。しかし、これはサイトの追跡コードに問題をもたらし、買い物客がチェックアウトのために電子商取引サイトから転送されるのは、一種の不自然に感じます.
主な懸念事項は、Google キャンペーンを使用しているため、広告からドメイン 1 のリッチ コンテンツへのコンバージョンを追跡したいのですが、実際の販売はドメイン 2 でのチェックアウト時に発生します。
訪問者を www.domain1.com/cart から domain2.com/miscX に送信するのではなく、ProxyPass と ProxyPassReverse をセットアップして、訪問者を www.domain1.com/shop/miscX に送信できるようにしました。
App1 (drupal) は domain1.com/* にあり、.htaccess は Drupal の設計をバイパスしてすべてをインターセプトします。「その他の」パスは、サブディレクトリにリダイレクトし、そこからプロキシするという事実から来ています。プロキシされたページがレンダリングされると、/miscX へのハードコードされたパスがいくつかあり、リダイレクト中にそれらのパスに特別な準備をしなくても、(プロキシに従う /shop/miscX/ の代わりに) /miscX/ になります。 css、jsなどの欠落の原因となります。
注: 当社の法人顧客は domain2.com に直接ログインできるため、そのポータルはそのままにしておきたいと思います。
以下の local-d7 は、domain1 サーバーのローカル テスト インスタンスです。プロキシのテストは、この概念が SSL で機能することを示しています。
これはほとんど機能していますが、URL エンコードされたパラメーターが失われているようです (クエリ文字列は問題ありません)。プロキシを導入すると、server2 にはエンコードされたパラメーターが表示されません (これは特殊なアプリであり、IIS が受信しているものを表示する方法がわかりません)。エンコードされたパラメーターを持たないような方法で、server-1 の apache を介して domain2 テスト ポータル ログインをルーティングすると、ログインが機能します。
事実上、私はしようとしています
- リバース プロキシ
- パスを変更します (ドメイン 2 で / で実行されているアプリを配置し、ドメイン 1 のサブディレクトリ "/shop" に公開します)
- SSLをサポート
- Apache の背後にある IIS サーバーをプロキシする
- 元の domain-2.com URL で引き続き使用できるように、IIS サーバーを変更しないようにします。
- これは、Apache の構成制御が制限されている [可能性がある] ホストされたサーバーで行います。(現在 XAMPP でテスト中)。
rewriterules、redirects など、ここに示されているものに加えて、あらゆる種類のことを試しました。mod_proxy や mod_rewrite などの経験はまったくありません。しかし、プロキシのこの配置は、ある程度の作業と、おそらくサーバー SSL 証明書の修正で実行可能です。
アドバイス? - ありがとう
vhosts.conf
## Redirect /misc1/ https://local-d7/shop/misc1/
## Redirect /misc2/ https://local-d7/shop/misc2/
## Redirect /misc3/ https://local-d7/shop/misc3/
## ProxyRequests Off
## ProxyPreserveHost On
## RequestHeader set Proxy-SSL true
## ProxyPass /shop/ https://www.shop.com/
## ProxyPassReverse /shop/ https://www.shop.com/
ProxyPass /shop/ https://www.domain2.com/
ProxyPassReverse /shop/ https://www.domain2.com/
ProxyPass /misc1/ https://www.domain2.com/misc1/
ProxyPassReverse /misc1/ https://www.domain2.com/misc1/
ProxyPass /misc2/ https://www.domain2.com/misc2/
ProxyPassReverse /misc2/ https://www.domain2.com/misc2/
ProxyPass /misc3/ https://www.domain2.com/misc3/
ProxyPassReverse /misc3/ https://www.domain2.com/misc3/
.htaccess
RewriteCond %{REQUEST_URI} ^/misc1/
RewriteCond %{REQUEST_URI} ^/misc2/
RewriteCond %{REQUEST_URI} ^/misc3/
RewriteRule (.*) /shop/$1