IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Redirection proxy conditionnée par le contenu du header


Sujet :

Apache

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Redirection proxy conditionnée par le contenu du header
    Bonjour,

    J'ai un projet sous Tomcat Jakarta avec en frontal un serveur apache qui fait suivre les requetes au tomcat via mod_proxy .

    Je souhaiterai savoir si il existe une solution sous apache via ses nombreux modules... de mettre en place l'architecture suivante :

    - Apache teste le header HTTP pour savoir si il y a ou non la présence d'un paramètre particulier propre à l'application (peu importe la valeur)
    si le paramètre est présent il redirige la requete sur un context (site) de tomcat
    sinon il redirige la requete vers un autre context de tomcat

    en résumé y a t-il moyen de tester le header et de forwarder la requete en consequence sans mettre en amont du php , java etc...

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu as 2 solutions : passer par les variables d'environnement conjointement avec ProxyPassInterpolateEnv ou bien utiliser mod_rewrite à la place de mod_proxy. Si on part sur la seconde option qui me paraît plus pertinente, ça donnerait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{HTTP:mon_header} ma_valeur
    RewriteRule (.*) http://serveur_tomcat:port_tomcat/$1 [P,L]

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Merci pour ton aide.

    J'ai mis en place l'url rewriting, cela fonctionne bien avec un navigateur , la redirection s'opère mais j'ai omis de préciser dans mon premier message qu'il s'agit d'une requete POST que je dois rediriger.

    Et là avec un requete POSTenvoyée via un petit prog java qui utilise l'api org.apache.commons.httpclient j'ai la réponse suivante alors que si je tape mon url sous le navigateur j'arrive bien directement sur mon url de destination .

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>301 Moved Permanently</title>
    </head><body>
    <h1>Moved Permanently</h1>
    <p>The document has moved <a href="http://monurldedestination">here</a>.</p>
    <hr>
    <address>Apache/2.2.3 (Debian) PHP/5.2.0-8+etch7 Server at 99.99.99.99</address>
    </body></html>
    Donc il trouve bien la redirection mais ne la suit pas .
    A ce stade je n'arrive pas à voir la différence de résultat entre le GET et le POSt, est -ce un mauvais paramètre serveur ou bien un comportement différent du client (navigateut vs api httpclient )

    Merci d'avance

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ni l'un ni l'autre. Demande toi ce que doit faire un navigateur lorsqu'on redirige une requête POST : la redirection est-elle due au fait que la requête POST a été correctement traitée et donc la redirection est le résultat logique attendu (par exemple, au login), ou bien s'agit-il de refaire le POST sur une autre URL ? Le choix logique est la première réponse : considérer que la redirection est le résultat logique attendu de la requête POST. S'il faut refaire la requête sur une autre URL, il faut s'y prendre autrement (JavaScript, connaître la vraie URL cible avant de poster, etc.)

Discussions similaires

  1. [AC-2007] contenu de champ conditionné par d'autres champs
    Par ubaal dans le forum Modélisation
    Réponses: 2
    Dernier message: 18/05/2010, 10h35
  2. [PHP-JS] Redirection sans passer par les headers
    Par ozzmax dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2007, 15h38
  3. Redirection vers page par dirname
    Par arti2004 dans le forum Langage
    Réponses: 6
    Dernier message: 23/07/2006, 18h26
  4. Réponses: 2
    Dernier message: 11/05/2006, 22h21
  5. Réponses: 2
    Dernier message: 15/03/2005, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo