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 :

Problème avec mod_rewrite


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Par défaut Problème avec mod_rewrite
    Bonjour!

    Voilà, j'ai un problème avec mod_rewrite, ma config ne fonctionne pas et je ne comprends pas pourquoi!

    J'ai suivi ce tuto http://zekey.developpez.com/tutoriel/apache/tomcat/ , et quand j'arrive au point V du mod_rewrite, ma config ne fonctionne plus.

    Voici la situation, j'ai une appli "IrisManager" déployée sur un serveur tomcat 7.0.34 qui fonctionne bien et est accessible par http://localhost:8080/IrisManager/ (pour l'instant normal). Je suis sous windows xp pour mes tests

    En ajoutant la config suivante dans httpd.conf de mon serveur apache 2.2, ca fonctionne aussi avec http://localhost/IrisManager/

    httpd.conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    LoadModule jk_module modules/mod_jk.so
     
    #
    # Mod_jk settings
    #
       JkWorkersFile "C:/Apache2.2/conf/worker.properties"
       JkLogFile "C:/Apache2.2/logs/mod_jk.log"
       JkLogLevel info
       JkMount /IrisManager monworker
       JkMount /IrisManager/* monworker
    # End of mod_jk settings
    worker.properties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ps=\
    worker.list=monworker
    worker.monworker.port=8009
    worker.monworker.host=127.0.0.1
    worker.monworker.type=ajp13
    Mais c'est maintenant que ca se gâte, au moment de la config du mod_rewrite. Si je suis le tuto, je dois ajouter ce code dans mon httpd.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <VirtualHost *:80>
            RewriteEngine On
            RewriteRule ^$ http://localhost/IrisManager  [L]
    </VirtualHost>
    Mais après redémarrage de mon apache, l'url http://localhost/IrisManager/ me dit "not found" et l'url http://localhost/ me dit "It works", qui est le message par défaut de apache

    Je comprends pas et ca fait 1 jour que je me prends la tete avec ca, qu'est-ce que j'ai fait de faux?

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Par défaut
    Please?

    Personne pour aider?

    Est ce que qqun pourrait juste me confirmer mes commentaires :


    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
     
    #lancement du module jk
    LoadModule jk_module modules/mod_jk.so
    #fichier de config + logs
    JkWorkersFile "C:/Apache2.2/conf/worker.properties"
    JkLogFile "C:/Apache2.2/logs/mod_jk.log"
    JkLogLevel info
    #redirection de ce qui contient "/IrisManager" dans mon worker -> tomcat:8009
    JkMount /IrisManager monworker
    JkMount /IrisManager/* monworker
     
     
    <VirtualHost *:80>
    #activation du rewrite engine
    RewriteEngine On
    #règle de réécriture : tout ce qui entre, renvoyer sur http://localhost/IrisManager
    RewriteRule ^$ http://localhost/IrisManager  [L]
    </VirtualHost>

  3. #3
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    Dans ton httpd.conf, tu avais logiquelent déjà une section <VirtualHost *:80>
    Tu as bien ajouté la conf rewriteRule dans ce virtualHost éxistant ?

    Tu as bien la ligne de chargement du module mod_rewrite décommentée dans ton http.conf ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Par défaut
    J'ai finalement changé de méthode, j'ai compris trop tard que le module rewrite n'était pas ce que je recherchais pour mon projet.

    Alors là je suis parti sur le mod_proxy et ca fait ce que je veux, ou presque. Ma config est la suivante (et non je n'avais pas déjà une section <Virtualhost *.80>)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <VirtualHost _default_:80>
      ProxyPreserveHost On
      ProxyPass /IrisManager http://localhost:8080/IrisManager
      ProxyPassReverse /IrisManager http://localhost:8080/IrisManager
    </VirtualHost>
    Maintenant je me pose encore la question de comment faire une fois que mon serveur httpd sera sur son serveur final en prod (intranet) et que les utilisateurs voudront l'interroger, je ne peux quand meme pas leur dire de taper http://<nom serveur>/IrisManager, mais simplement http://<nom serveur>... comment faire dans ce cas?

    C'est justement pour ce cas que je voudrais faire qqch comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ProxyPass / http://localhost:8080/IrisManager
    ProxyPassReverse / http://localhost:8080/IrisManager
    Mais selon mes tests ceci renvoie sur la page d'accueil de apache httpd avec le message "It works"

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Par défaut
    Bon, j'ai le sentiment de ma rapprocher de la solution désirée (en plus d'avoir le sentiment de faire un monologue )

    Avec cette config, ca fonctionne très bien en local, l'url est réécrite en <nom machine>/IrisManager et j'arrive sur ma page d'accueil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <VirtualHost _default_:80>
      RewriteEngine On
      RewriteRule ^/$ http://<nom machine>/IrisManager
      #ici, ce qui arrive sur "<nom machine>/" est réécrit en <nom machine>/IrisManager
      # et <nom machine>/IrisManager et envoyé sur tomcat (proxy)
     
      #Conserver le nom d'hôte d'origine dans la requête
      ProxyPreserveHost On
     
      ProxyPass /IrisManager http://<nom machine>:8080/IrisManager
      ProxyPassReverse /IrisManager http://<nom machine>:8080/IrisManager
    </VirtualHost>
    Mais si je me connecte depuis une autre machine et que je fais http://<nom machine>/, il me trouve rien.

    Est-ce qu'on pourrait m'expliquer? Je suis largué là...

  6. #6
    Membre Expert Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Par défaut
    T'as changé de module mais pas de méthode en fait.

    Ce que tu fais avec mod_proxy, tu le faisais avec mod_jk....
    La différence est que l'un travaille en http et l'autre en ajp....

    Tu en reviens donc à modifier avec mod_rewrite ton url... Comme dans ton premier post....

    Ajoute un / à la fin de la cible du proxypass. J'utilise un paramétrage similaire sur un de mes sites.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass / http://localhost:8080/IrisManager/
    ProxyPassReverse / http://localhost:8080/IrisManager/

Discussions similaires

  1. Problème avec mod_rewrite
    Par Joebarboat dans le forum Apache
    Réponses: 2
    Dernier message: 24/01/2012, 20h11
  2. Réponses: 14
    Dernier message: 23/05/2010, 11h49
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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