Apache サーバーの書き換えルール: 「暗黙的にリダイレクトを強制する (rc=302)」を回避するにはどうすればよいでしょうか?

Apache サーバーの書き換えルール: 「暗黙的にリダイレクトを強制する (rc=302)」を回避するにはどうすればよいでしょうか?

非常に厄介な問題があります:

私たちの Web サーバーは 2 を処理します (実際にはもっと多いですが、簡単な例として 2 とします)。

  • プレタッサー
  • プレタッサージェントモビリエ

私がやりたいことはこれです:変化

(whatever1).pretassuragentimmobilier.fr(/whatever2)

(whatever1).pretassur.fr(/whatever2)?theme=agentimmobilier

これが私の書き直しルールです:

RewriteCond %{SERVER_NAME} (([a-z]+\.)*)pretassuragentimmobilier.(fr|com)
RewriteRule   ^(.+)        http://%1pretassur.fr$1 [E=THEME:pretassur_agent,QSA]
# if THEME not empty, set it :
RewriteCond   %{ENV:THEME} ^(.+)$
RewriteRule (.*) $1?IDP=%{ENV:THEME} [QSA]

大きな(巨大な)問題は、書き換えログを見てみましょう。

[pretassurmandataireimmo.com] (5)
=> setting env variable 'THEME' to 'pretassur_mandataire'
[pretassurmandataireimmo.com]
=> (2) implicitly forcing redirect (rc=302) with http://pretassur.fr/

ああああああああ!「暗黙的にリダイレクトを強制する」=> そんなことはしたくない!内部的に実際のリダイレクトではなく、pretassur.fr にリダイレクトします。

ここで次のように入力します:http://pretassurmandataireimmo.comリダイレクトされるhttp://pretassur.fr/?IDP=pretassur_mandataire(試してください) それは嫌です! このページを表示したいのですhttp://pretassur.fr/?IDP=pretassur_mandataireただし、元のホストには触れずに!

何か案が?

どうもありがとう!

答え1

たとえ同じサーバー上にあるとしても、2 つの異なる vhost 間で内部リダイレクトを行うことはできません。そのため、外部 (302) リダイレクトが行われます。

目的を達成するには、「'proxy|P' (強制プロキシ)」オプションを使用できます。

関連情報