У меня возникла очень неприятная проблема:
наш веб-сервер обрабатывает 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
Даже если они находятся на одном сервере, вы не можете делать внутренние перенаправления между двумя разными vhosts. Отсюда и внешний (302) редирект.
Чтобы добиться желаемого, можно использовать опцию «'proxy|P' (принудительное использование прокси)».