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

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

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

我们的网络服务器处理 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/

Aaaaaaaaarg!“隐式强制重定向”=> 我不要那个!我想要内部重定向到 pretassur.fr,而不是进行真正的重定向!

现在如果你输入:http://pretassurmandataireimmo.com它被重定向到http://pretassur.fr/?IDP=pretassur_mandataire(尝试一下)我不想要这个!我想显示此页面http://pretassur.fr/?IDP=pretassur_mandataire但无需接触原始宿主!

任何想法?

多谢!

答案1

即使它们位于同一台服务器上,您也无法在两个不同的虚拟主机之间进行内部重定向。因此需要进行外部 (302) 重定向。

为了实现您想要的目标,您可以使用“'proxy|P'(强制代理)”选项。

相关内容