Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

general.general : Apache redirect derriere un proxy.

Posté par lom (page perso, ) le 14 avril 2008

hello,



J'ai un souci de redirection avec Apache, que je n'arrive pas a résoudre.



Le but est que toute requete vers example.com soit redirigée vers www.example.com.

Le problème est que example.com est derrière un proxy, Apache étant situé sur serveur.com. Je n'ai accès que a la conf du serveur, pas a celle du proxy.



Actuellement, www.example.com et example.com sont tous les deux redirigés vers serveur.com (port 8300) en interne. J'aimerai donc pouvoir faire la différence entre les deux pour demander une redirection si besoin.



ma conf actuelle est:



nameVirtualHost *:8300

< VirtualHost *:8300 >

ServerName www.example.com



RewriteEngine on

RewriteCond {SERVER_NAME} !www\.example\.com$ [NC]

RewriteRule ^/(.*) http://www.example.com/$1 [L,R=301]



[...]





Le souci est que dans SERVER_NAME je n'ai que serveur.com, pas example.com. Je n'ai pas trouvé d'autres variables qui contiennent example.com, pas plus que je n'ai réussi a tricher de façon différente (je pensais a SetEnvIf, puis comparer a cette variable ).



Quelqu'un aurait-il une idée géniale?

Merci pour toute piste

> Lire le message (9 commentaires, moyenne: 2,3).  

Vous avez demandé le commentaire #922965.

Si je ne m'abuse ...

Posté par Gérald (page perso, ) le 14/04/2008 à 18:09. (lien). Évalué à 3.

Quel reverse proxy utilises tu ?

J'ai récemment eu des petits soucis avec Apache en reverse proxy...
mod_proxy fonctionne en HTTP/1.0 de base, donc pas de header host: dans la requête, donc fonctionnement bête et méchant de HTTP/1.0 sans notion de vhost possible.

Il faut, au niveau du reverse proxy, forcer l'utilisation du HTTP/1.1 et son header host: à coup de:
ProxyPreserveHost on
Ensuite, en temps normal, pour transformer du truc.com en www.truc.com, il y pas besoin de se casser la tête, cf la directive UseCanonicalName: http://httpd.apache.org/docs/2.0/mod/core.html#usecanonicaln(...)

  • [^]Re: Si je ne m'abuse ...

    Posté par lom (page perso, ) le 15/04/2008 à 11:02. (lien). Évalué à 2.

    Je n'ai pas acces au proxy... Je ne sais pas trop ce qui est utilise.

    Pour le coup du UseCanonicalName, j'avais bien remarque cette directive, mais ca ne semble pas aider. Elle est a 'on' par defaut, je l'ai passe a 'off' par acquis de conscience, mais rien ne change...

    • [^]Re: Si je ne m'abuse ...

      Posté par Gérald (page perso, ) le 15/04/2008 à 14:06. (lien). Évalué à 2.

      Très franchement, en lisant ça:

      Le souci est que dans SERVER_NAME je n'ai que serveur.com


      Ca me fait très clairement penser au proxy qui renvoit pas le nom de serveur... donc ton problème n'a pas trop trop de solution sans en savoir plus sur ce fameux proxy.

      Sinon, il faudrait que ta directive UseCanonicalName soit à On pour forcer l'utilisation du nom spécifié via la directive ServerName.