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 :

url rewrite puis proxypass


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Par défaut url rewrite puis proxypass
    Bonjour,

    Cela fait pas mal de temps que je suis les divers discussions de Developpez sans n'avoir posté un seul message, mais là je ne trouve pas la solution à mon problème...

    Situation :
    J'ai un serveur Apache2 sous Gentoo, celui-ci se charge de faire la passerelle avec un serveur Tomcat6. J'utilise mod_proxy pour atteindre le serveur Tomcat. Jusque là tout va bien. Maintenant je désirai faire de l'URL rewriting.

    Mon application Tomcat charge la page désirée en checkant les paramètres (ex: ?page=page_probleme).

    Objectif :
    L'objectif est, lorsque que je tape une URL genre www.monsite.com/probleme, de me renvoyer la page ?page=page_probleme qui se trouve sur mon Tomcat.

    Actuellement voici à quoi ressemble mon virtalHost :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <VirtualHost *:80>
     
      ServerAdmin root@monsite.com
      ServerName monsite.com
      ServerAlias www.monsite.com
     
      RewriteEngine on
      RewriteRule (.*) $1 [PT,E=my_env_var:1]
     
      ProxyPass / http://192.168.1.11:8080/myApp?page=page_
      ProxyPassReverse / http://192.168.1.11:8080/myApp?page=page_
     
      ErrorLog /var/log/apache2/monsite.com-error_log
      CustomLog /var/log/apache2/monsite.com-access_log combined
     
    </VirtualHost>
    Lorsque je vais sur l'url http://www.monsite.com/probleme, j'ai l'erruer suivante qui se produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    HTTP Status 404 - /myApp%3Fpage=page_probleme
     
    type Status report
     
    message /myApp%3Fpage=page_problem
     
    description The requested resource (/myApp%3Fpage=page_problem) is not available.
    Apache Tomcat/6.0.20
    Quand je vais sur cette URL depuis mon serveur Tomcat (http://192.168.1.11:8080/myApp?page=page_probleme) tout fonctionne.

    Merci d'avance pour votre aide !!

  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
    Tu ne peux pas faire ce genre de chose avec ProxyPass, il faut utiliser mod_rewrite à la place. En gros, remplace tes ProxyXxx par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule /(.*)^ http://192.168.1.11:8080/myApp?page=page_$1 [P]
    Le souci c'est si tu as des images : là, absolument tout sera passé en paramètres pages_xxx. Il faut donc ajouter des règles spécifiques et des conditions pour les images et les autres trucs qui ne doivent pas passer par page=...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Par défaut
    Super merci beaucoup pour ta réponse rapide ! Je vais essayer ça tout de suite.

    Et c'est vrai que je n'avais pas du pensé que les images pourraient posées problème ! Je vois le problème... Par contre quel genre d'erreurs produit cette expression ?? J'ai déjà eu pas mal d'erreurs de FireFox me disant que la redirection ne pouvait pas se terminer (redirige en boucle ??). Est-ce que ça viendrait de là ???

    Edit : Je m'excuse d'avance, je suis vraiment pas au point avec Apache... Donc j'ai effectué les modifications que tu m'as donné. Cependant j'ai une nouvelle erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Forbidden
     
    You don't have permission to access / on this server.
    Apache Server at www.mysite.com Port 80
    Et dans les logs Apache :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Tue Oct 06 15:19:33 2009] [error] [client 192.168.3.1] client denied by server configuration: /usr/htdocs
    Est-ce un problème dans mon vhost ?? En essayant deux ou trois choses, j'ai pu résoudre en lui donnant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <VirtualHost *:80>
     
      ServerAdmin root@monsite.com
      ServerNamemonsite.com
      ServerAlias www.monsite.com
     
    DocumentRoot /tmp
     
    <Directory /tmp >
        Allow from all
        Deny from all
        Order deny,allow
    </Directory>
     
    RewriteEngine on
    RewriteRule /page/(.*)^ http://192.168.1.11:8080/Myapp?page=page_$1 [P]
     
    ErrorLog /var/log/apache2/monsite.com-error_log
    CustomLog /var/log/apache2/monsite.com-access_log combined
     
    </VirtualHost>
    /tmp contient le fichier index.html de apache (le "It works")... Mais suis-je obligé de lui donner un DoumentRoot ainsi que le noeud <Directory> ?? J'ai aussi modifié l'expression comme ça plus de problème pour les ressources.

    Je suis maintenant redirigé sur la page d'accueil de Tomcat.
    Une chose "bizarre" c'est que lorsque je commente les deux lignes de redirections avec un "#", j'obtiens exactement le même résultat... Je ne vois pas comment il s'y prend pour le rediriger...

    Edit 2 : le problème de la redirection sur la page d'accueil de Tomcat est résolu, c'était un vieux bout de mod_jk qui trainait !! Par contre la redirection ne se fait pas du tout.

  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
    Citation Envoyé par bernardlamotte Voir le message
    Par contre la redirection ne se fait pas du tout.
    Avec tous tes édits je suis perdu Peux-tu redétailler le problème, maintenant ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 14
    Par défaut
    Oups désolé, je me suis un peu emballé !!

    Alors voilà ce que je fais depuis ton premier poste :
    1. J'ai enlever mes proxypass et les ai remplacé par une RewriteRule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RewriteRule /page/(.*)^ http://192.168.1.11:8080/Myapp?page=page_$1 [P]
    2. Suite à cette modification j'ai eu cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Forbidden
     
    You don't have permission to access / on this server.
    Apache Server at www.mysite.com Port 80
    Avec dans les logs apache :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Tue Oct 06 15:19:33 2009] [error] [client 192.168.3.1] client denied by server configuration: /usr/htdocs
    3. J'ai trouvé une solution à ce problème en ajoutant le DocumentRoot et le noeud <Directory>. Par contre je ne sais pas si ça règle vraiment la solution à mon problème...

    4. C'est là que je bloque... Lorsque je vais sur mon URL, je tombe sur la page j'ai mise en DocumentRoot sans qu'une redirection soit faite...

    Voilà à quoi ressemble mon Virtual Host actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <VirtualHost *:80>
     
      ServerAdmin root@monsite.com
      ServerNamemonsite.com
      ServerAlias www.monsite.com
     
    DocumentRoot /tmp
     
    <Directory /tmp >
        Allow from all
        Deny from all
        Order deny,allow
    </Directory>
     
    RewriteEngine on
    RewriteRule /page/(.*)^ http://192.168.1.11:8080/Myapp?page=page_$1 [P]
     
    ErrorLog /var/log/apache2/monsite.com-error_log
    CustomLog /var/log/apache2/monsite.com-access_log combined
     
    </VirtualHost>
    Je ne sais pas du tout si les modifications que j'ai faite son correct... Merci encore pour ton aide !!!

  6. #6
    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 me suis trompé dans la RewriteRule, toutes mes excuses !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule /page/(.*)$ http://192.168.1.11:8080/Myapp?page=page_$1 [P]
    Fallait mettre un $ et pas un ^, ça ne veut pas du tout dire pareil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant]infos ds session sans cookie ? url rewriting ?
    Par Satanas_et_diabolo dans le forum ASP
    Réponses: 8
    Dernier message: 10/10/2006, 17h13
  2. url rewriting
    Par olive.m dans le forum Apache
    Réponses: 3
    Dernier message: 17/06/2005, 02h01
  3. .htaccess - url rewriting, besoin de conseils
    Par giminik dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2005, 20h18
  4. Activer l'url rewriting
    Par Otaugames dans le forum Apache
    Réponses: 2
    Dernier message: 09/03/2005, 14h58
  5. Url Rewriting / htaccess
    Par bisi dans le forum Apache
    Réponses: 4
    Dernier message: 25/07/2004, 22h12

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