Apache伺服器重寫規則:如何避免「隱式強制重新導向(rc=302)」?

Apache伺服器重寫規則:如何避免「隱式強制重新導向(rc=302)」?

我有一個非常煩人的問題:

我們的網頁伺服器處理 2 個(實際上更多,但我們假設 2 個更簡單的例子):

  • pretassur.fr
  • pretassuragentimmobilier.fr

這就是我想做的:改變

(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

即使它們位於同一台伺服器上,您也無法在兩個不同的虛擬主機之間進行內部重新導向。因此,外部 (302) 重定向。

要完成您想要的任務,您可以使用“'proxy|P'(強制代理)”選項。

相關內容