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 :

Directive <Location> et retransmission incomplète du chemin par proxy


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut Directive <Location> et retransmission incomplète du chemin par proxy
    Bonjour à tous,

    Tout d'abord, je ne sais pas si je poste au bon endroit, car mon post concerne deux sujet, apache et php ... donc milles excuses si ce n'est pas le cas ...

    Voici mon problème : j'ai paramétré un reverse proxy avec apache, avec du ssl, et je rencontre ensuite un soucis avec php ... J'adresse un serveur X en https qui me renvoie sur un serveur Y ...

    Tout d'abord, voici la configuration d'apache pour le reverse proxy, qui se trouve sur le serveur 192.168.1.3 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    NameVirtualHost *:443
     
    <VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile conf/ssl/serv_appli.cert
    SSLCertificateKeyFile conf/ssl/serv_appli.key
    ProxyRequests Off
       <Location /HR/>
          ProxyPass <a href="http://192.168.1.14/" target="_blank">http://192.168.1.14/</a>
          ProxyPassReverse <a href="http://192.168.1.14/" target="_blank">http://192.168.1.14/</a>
       </Location>
    </VirtualHost>
    J'adresse mon application par https://192.168.1.3/HR/ et ça fonctionne ... ou presque ... Le seul problème que j'ai vient de l'utilisation de la variable $_SERVER["PHP_SELF"] dans mes formulaires, voici un exemple :

    <form name='formul' action='".$_SERVER["PHP_SELF"]."?mode=insert' method='post'>

    Je me trouve dans une page avec pour url, http://192.168.1.3/HR/panier.php ... jusqu'ici ok ... ensuite lorsque je valide mon formulaire je tombe sur une page web introuvable ... et pour cause dans mon url j'ai http://192.168.1.3/panier.php?mode=insert !! J'ai perdu le /HR/ !!

    Voila j'espère avoir été clair, et surtout que quelqu'un aura une solution au problème !!

    Par avance merci.

    PS : j'oubliais, sur les deux serveurs c'est un apache 2.0.63

  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
    Par défaut
    Y a une balise <base> dans tes pages HTML ? Quel est le code HTML (balise <form> en particulier) généré par PHP et qui fait planter le submit ?

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Y a une balise <base> dans tes pages HTML ? Quel est le code HTML (balise <form> en particulier) généré par PHP et qui fait planter le submit ?
    Non, je n'ai pas de balise <base>, d'ailleurs je ne connaissais pas cette balise. Je viens de regarder un peu son fonctionnement, je ne suis pas sur de pouvoir l'utiliser dans mon application, mais je peux creuser ...

    Pour la balise <form>, j'ai ceci :

    <form ... action='/panier.php?mode=insert' method='post'>

    ... comme on pouvait s'y attendre, il manque /HR/

    Par contre, dans un cas plus classique, sans reverse proxy ni https ni <location>, ça fonctionne. A la racine de mon site 192.168.1.14, je fais un sous-dossier HR. Ensuite j'y accède de façon normale, par http://192.168.1.14/HR/ ...
    Dans ce cas, si je regarde la balise <form>, elle contient bien :
    <form ... action='/HR/panier.php?mode=insert' method='post'>

    Ce n'est pas du tout la même façon d'y accéder, c'est sur, mais je m'attendais à avoir le même fonctionnement dans les deux cas ...

  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
    Par défaut
    Je ne vois pas pourquoi ça pourrait venir de là mais tu as essayé sans mettre de <Location> ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass /HR http://192.168.1.14/
    ProxyPassReverse /HR http://192.168.1.14/
    J'ai retiré le / terminal volontairement, mais bon, j'y crois pas trop.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Effectivement pas de changements ... je suis vraiment tombé sur un cas tordu ... c'est une configuration d'un de nos clients, qui fonctionne comme ça ...
    Je crois que je vais devoir utiliser une autre méthode ... j'ai une petite fonction qui à partir du nom du script peut me reconstituer l'url correctement ... mais d'ailleurs je suis en train de me demander comment elle y arrive !!
    à suivre ...

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Par défaut
    Citation Envoyé par Ol1974 Voir le message
    Effectivement pas de changements ... je suis vraiment tombé sur un cas tordu ... c'est une configuration d'un de nos clients, qui fonctionne comme ça ...
    Je crois que je vais devoir utiliser une autre méthode ... j'ai une petite fonction qui à partir du nom du script peut me reconstituer l'url correctement ... mais d'ailleurs je suis en train de me demander comment elle y arrive !!
    à suivre ...
    J'écris un peu vite, cette fonction ne me reconstruit pas l'url (elle ne pourrait pas, aucune variable $_SERVER ne mentionne /HR) mais elle me renvoie un chemin relatif ... Je crois que je ne vais pas avoir le choix ...

    NB : j'ai besoin d'une fonction pour trouver le chemin relatif car j'ai des programmes qui peuvent être spécifiques et du coup je dois parfois rajouter un truc du genre ../../..
    Ca aurait été trop simple de n'avoir qu'à rajouter un . devant $_SERVER["PHP_SELF"] !!

Discussions similaires

  1. Retransmission en direct sur le Web
    Par gurielle dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 02/09/2009, 03h15
  2. Réponses: 2
    Dernier message: 27/02/2008, 13h49
  3. Direct Graphics
    Par Blustuff dans le forum DirectX
    Réponses: 9
    Dernier message: 28/10/2002, 04h19
  4. Hors série PCTEAM sur Direct 3D
    Par Shakram dans le forum DirectX
    Réponses: 1
    Dernier message: 12/10/2002, 16h34
  5. La communauté Direct X est au repos?
    Par Shakram dans le forum DirectX
    Réponses: 21
    Dernier message: 18/07/2002, 23h32

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