Apache服务器重写规则:如何避免“隐式强制redirect(rc = 302)”?

我有一个非常恼人的问题:

我们的networking服务器处理2(实际上更多,但让我们来说一个更简单的例子):

  • pretassur.fr
  • pretassuragentimmobilier.fr

这是我想要做的:改变

(whatever1).pretassuragentimmobilier.fr(/whatever2) 

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

所以这是我的重写:

 RewriteCond %{SERVER_NAME} (([az]+\.)*)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/ 

Aaaaaaaaarg! “隐式强制redirect”=>我不要那个! 我想在内部redirect到pretassur.fr,而不是做一个真正的redirect!

现在,如果你input: http : //pretassurmandataireimmo.com它被redirect到http://pretassur.fr/?IDP=pretassur_mandataire (尝试它)我不要那个! 我想显示这个页面http://pretassur.fr/?IDP=pretassur_mandataire,但没有接触原来的主机!

任何想法?

非常感谢!

即使他们在同一台服务器上,也不能在两个不同的虚拟主机之间进行内部redirect。 因此外部(302)redirect。

要完成你想要的东西,你可以使用“'proxy | P'(强制代理)”选项。