Regras de reescrita do servidor Apache: como evitar “forçar implicitamente o redirecionamento (rc = 302)”?

2

Eu tenho um problema muito chato:

o nosso servidor web lida com 2 (mais na verdade, mas digamos 2 para um exemplo mais simples):

  • pretassur.fr
  • pretassuragentimmobilier.fr

Aqui está o que eu quero fazer: mudar

(whatever1).pretassuragentimmobilier.fr(/whatever2)

para

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

Então aqui está meu rewriterule:

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]

O grande (enorme) problema é: vamos dar uma olhada nos registros de reescrita:

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

Aaaaaaaaarg! "forçando implicitamente o redirecionamento" = > Eu não quero isso! Eu quero internamente redirecionar para pretassur.fr, para não fazer um redirecionamento real!

Agora, se você digitar: link , ele será redirecionado para link (experimente) Eu não quero isso! Quero exibir esta página link , mas sem tocar no host original!

Alguma ideia?

Muito obrigado!

    
por Olivier Pons 21.12.2010 / 10:11

1 resposta

2

Mesmo se eles estiverem no mesmo servidor, você não poderá fazer redirecionamentos internos entre dois vhosts diferentes. Daí o redirecionamento externo (302).

Para realizar o que você deseja, você pode usar a opção "'proxy | P' (forçar proxy)".

    
por 21.12.2010 / 18:43