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 :

RewriteRule et VirtualHost


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut RewriteRule et VirtualHost
    Bonjour à tous,

    J'essaie de faire un Rewrite dans un Virtual mais ça n'a pas l'air de marcher.

    Mon besoin, c'est que les pages de la forme
    truclocale/foo/...
    soient renvoyées vers
    truclocale/TrucWeb/foo/...

    En gros c'est pour cacher le contexte TrucWeb sur un tomcat.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <VirtualHost truclocale:80>
      Alias /img c:/truc/mesimages
      Alias /css c:/truc/css
     
      RewriteEngine On
      RewriteRule /foo(.*) /TrucWeb/foo$1
     
      JkMount /TrucWeb/ worker_truc
      JkMount /TrucWeb/* worker_truc
    </VirtualHost>
    Je précise que worker_truc est un mod_jk (apache vers tomcat).

    Par exemple, je demande http://truclocale/foo/machin/bidule et je voudrais que ça ajoute TrucWeb pour que ça passe par le worker truclocale/TrucWeb/foo/machin/bidule

    Helpppppppppppp
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  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
    Ta ligne 6 part en boucle infinie. Il faut la faire précéder d'une condition pour ne l'activer que si l'URL demandée ne commence pas par "/TrucWeb" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{REQUEST_URI} !^/TrucWeb
    Après, il faut ajouter le flag PT à ta RewriteRule pour forcer Apache à repasser l'URL issue de la réécriture dans la configuration complète, y compris JkMount.

  3. #3
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Heu ? Je sens le mal de crane approcher :-(

    En fait, mon besoin complet, c'est même plus hard. J'explique, je voudrais que tout aille sur le worker, sauf les alias.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <VirtualHost truclocale:80>
      Alias /img c:/truc/mesimages
      Alias /css c:/truc/css
     
      RewriteEngine On
      RewriteCond %{REQUEST_URI} !^/TrucWeb
      RewriteRule /(.*) /TrucWeb/$1 [P,L]
     
      JkMount /TrucWeb/ worker_truc
      JkMount /TrucWeb/* worker_truc
    </VirtualHost>
    Mais quand je demande http://truclocale j'ai une erreur "Internal Server Error".

    Quand je j'utilise RL, ça marche, mais ça ajoute "TrucWeb" dans l'url dans Firefox :-(
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2004
    Messages : 327
    Par défaut
    Pourquoi ne pas faire des RewriteRule pour les ressources statiques plutôt que des Alias ?
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteRule /monsite/.../img/(.*)  /ressources/img/$1 [L]
    RewriteRule /monsite/.../css/(.*)  /ressources/css/$1 [L]
    Ou ressources est un répertoire de ton Directory qui contiendrait les sous dossiers img, css...bref toutes les ressources statiques

    Et si tu ajoutes un slash à la fin ca donne quoi ?
    Comme ça :


  5. #5
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Mes alias servent à charger des images sur le disque. Je ne vois pas très bien la logique à les remplacer par des rewrite.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  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
    Citation Envoyé par thierryler Voir le message
    J'explique, je voudrais que tout aille sur le worker, sauf les alias.
    Ca ne m'a pas l'air bien compliqué. Il suffit d'ajouter des conditions pour ne pas réécrire si les alias sont présents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      RewriteEngine On
      RewriteCond %{REQUEST_URI} !^/img
      RewriteCond %{REQUEST_URI} !^/css
      RewriteCond %{REQUEST_URI} !^/TrucWeb
      RewriteRule /(.*) /TrucWeb/$1 [P,L]

  7. #7
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Bonjour,

    Pour l'instant j'en suis à ça :

    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
     
    Alias /img c:/truc/mesimages
    Alias /css c:/truc/css
    Alias /favicon.ico c:/truc/mesimages/favicon.ico <-- arf
     
    RewriteEngine On
     
    RewriteCond %{REQUEST_URI} !^/img
    RewriteCond %{REQUEST_URI} !^/css
    RewriteCond %{REQUEST_URI} !^/TrucWeb
     
    RewriteRule /(.*) /TrucWeb/$1 [R,L]
     
    JkMount /TrucWeb/ worker_truc
    JkMount /TrucWeb/* worker_truc
    Le soucis, c'est que RL, ça change l'Url dans le navigateur :
    http://truclocale
    devient :
    http://truclocale/TrucWeb

    Et si je met PL, c'est page d'erreur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Internal Server Error
     
    The server encountered an internal error or misconfiguration and was unable to complete your request.
     
    Please contact the server administrator, admin@127.0.0.1 and inform them of the time the error occurred, and anything you might have done that may have caused the error.
     
    More information about this error may be available in the server error log.
     
    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
    Et dans error.log de Apache, j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Thu Feb 28 08:53:02 2013] [notice] Apache/2.2.21 (Win32) mod_jk/1.2.37 PHP/5.3.9 configured -- resuming normal operations
    [Thu Feb 28 08:53:02 2013] [notice] Server built: Sep 10 2011 11:34:11
    [Thu Feb 28 08:53:02 2013] [notice] Parent: Created child process 9612
    [Thu Feb 28 08:53:02 2013] [notice] Child 9612: Child process is running
    [Thu Feb 28 08:53:02 2013] [notice] Child 9612: Acquired the start mutex.
    [Thu Feb 28 08:53:02 2013] [notice] Child 9612: Starting 64 worker threads.
    [Thu Feb 28 08:53:02 2013] [notice] Child 9612: Starting thread to listen on port 80.
    [Thu Feb 28 08:53:07 2013] [warn] proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
    [Thu Feb 28 08:53:07 2013] [warn] proxy: No protocol handler was valid for the URL /error/HTTP_INTERNAL_SERVER_ERROR.html.var. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
    C'est du chinois pour moi...
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  8. #8
    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
    Me suis trompé, c'est PT et pas P
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ... ... [PT,L]

  9. #9
    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 as vidé le cache de ton navigateur avant de tester cette nouvelle configuration ?

    Est-ce que le /TrucWeb n'apparaît qu'après avoir cliqué sur un lien ou dès un appel à http://site.com/ ?

  10. #10
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Par défaut
    Oui oui j'ai fais attention.

    J'ailleurs, j'ai un autre effet : au début je vais sur monsite.com, ca remplace par monsite.com/TrucWeb/ qui m'envoie sur le login. La je me log, mais quand je navigue, je dois refaire le login dès la 2nd page, et ensuite c'est bon... C'est comme s'il y avait un login pour monsite.com modifié et un autre pour monsite.com/TrucWeb... sachant que c'est TrucWeb mon war.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  11. #11
    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
    Bizarre. T'as les moyens de vérifier si c'est Apache qui redirige le navigateur vers /TrucWeb ou si c'est Tomcat ? Comme je disais, il se peut que ce soit Tomcat ou ton application qui rajoute le /TrucWeb.

Discussions similaires

  1. [apache] safe_mode sur un virtualhost
    Par GregPeck dans le forum Apache
    Réponses: 2
    Dernier message: 03/12/2005, 23h19
  2. Apache / Tomcat Virtualhost
    Par lolo le belge dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 10/11/2005, 16h57
  3. [VirtualHost] dans httpd.conf
    Par polo55 dans le forum Apache
    Réponses: 3
    Dernier message: 03/10/2005, 11h20
  4. [APACHE] Config VirtualHost + hosts en Intranet
    Par jfdl dans le forum Apache
    Réponses: 9
    Dernier message: 02/09/2005, 22h41
  5. Réponses: 4
    Dernier message: 16/04/2004, 11h18

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