Reglas de reescritura del servidor Apache: ¿cómo evitar "forzar implícitamente la redirección (rc=302)"?

Reglas de reescritura del servidor Apache: ¿cómo evitar "forzar implícitamente la redirección (rc=302)"?

Tengo un problema muy molesto:

nuestro servidor web maneja 2 (más en realidad, pero digamos 2 para un ejemplo más simple):

  • pretassur.fr
  • pretassuragentimmobilier.fr

Esto es lo que quiero hacer: cambiar

(whatever1).pretassuragentimmobilier.fr(/whatever2)

a

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

Así que aquí está mi regla de reescritura:

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]

El gran (enorme) problema es: echemos un vistazo a los registros de reescritura:

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

¡Aaaaaaaarg! "forzar implícitamente la redirección" => ¡No quiero eso! Yo quierointernamenteredirigir a pretassur.fr, ¡no para realizar una redirección real!

Ahora si escribes:http://pretassurmandataireimmo.comes redirigido ahttp://pretassur.fr/?IDP=pretassur_mandataire(pruébalo) ¡No quiero eso! quiero mostrar esta paginahttp://pretassur.fr/?IDP=pretassur_mandataire¡pero sin tocar el anfitrión original!

¿Alguna idea?

¡Muchas gracias!

Respuesta1

Incluso si están en el mismo servidor, no puedes realizar redirecciones internas entre dos vhosts diferentes. De ahí la redirección externa (302).

Para lograr lo que desea, puede utilizar la opción "'proxy|P' (forzar proxy)".

información relacionada