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 :

[Ubuntu - Apache2] Mod_rewrite ne fonctionne pas


Sujet :

Apache

  1. #21
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    J'ai pu avoir les traces du rewrite, les voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [Mon Mar 02 18:41:53.154879 2015] [rewrite:trace2] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] init rewrite engine with requested uri /
    [Mon Mar 02 18:41:53.155127 2015] [rewrite:trace3] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] applying pattern '^/$' to uri '/'
    [Mon Mar 02 18:41:53.155180 2015] [rewrite:trace2] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] rewrite '/' -> 'http://ip_du_vps/app02'
    [Mon Mar 02 18:41:53.155196 2015] [rewrite:trace3] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] reduce http://ip_du_vps/app02 -> /app02
    [Mon Mar 02 18:41:53.155209 2015] [rewrite:trace2] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] local path result: /app02
    [Mon Mar 02 18:41:53.155255 2015] [rewrite:trace2] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] prefixed with document_root to /var/lib/tomcat7/webapps/app02
    [Mon Mar 02 18:41:53.155267 2015] [rewrite:trace1] [pid 12286] mod_rewrite.c(475): [client 176.144.114.27:58754] 176.144.114.27 - - [ip_du_vps/sid#7ffef7e1ee08][rid#7ffef7df10a0/initial] go-ahead with /var/lib/tomcat7/webapps/app02 [OK]
    et maintenant j'ai une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Internal Server Error
     
    The server encountered an internal error or misconfiguration and was unable to complete your request.
     
    Please contact the server administrator at [no address given] to inform them of the time this error occurred, and the actions you performed just before this error.
     
    More information about this error may be available in the server error log.
    Apache/2.4.10 (Ubuntu) Server at ip_du_vps Port 8009

  2. #22
    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
    Et y a quoi d'autre dans error.log quand cette erreur 500 survient ?

    Pour ce que tu veux faire, si Tomcat écoute sur le port 8080, il faut que tu rediriges Apache sur ce port :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/$  http://ip_du_vps:8080/monapp/ [P,L]
    sauf qu'en faisant ça, seul le / sera redirigé vers Tomcat : Apache considérera qu'il doit traiter toutes les autres URL. Donc généralement, à défaut d'utiliser mod_proxy_ajp, on utilise les bonnes vieilles directives ProxyPassXxx à la place de RewriteRule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProxyPass / http://ip_du_vps:8080/monapp/
    ProxyPassReverse / http://ip_du_vps:8080/monapp/
    Mais il se peut fort que les CSS et les images ne fonctionnent pas. Je te laisse tester.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Quand je met cette regle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/$  http://ip_du_vps:8080/monapp/ [P,L]
    l'url affiché dans le navigateur est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://ip_du_vps:8080/monapp/
    ce qui devrait ne pas l'etre, l'objectif est de retirer le nom de l'application et le port de l'url, c'est a dire quand je met dans le navigateur 'ip_du_vps' ou 'nomdedomaine' sa doit rester et non afficher le port et le nom de l'application

  4. #24
    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
    Et avec les 2 directives ProxyPass et ProxyPassreverse ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    J'ai ajouté cela dans le fichier apache2.conf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Location />
        ProxyPass http://ip_du_vps:8080/app02/
        ProxyPassReverse http://ip_du_vps:8080/app02/
    </Location>
    j'ai la meme erreur :


  6. #26
    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
    Dans ce cas, on va dans l'error log d'Apache.

    Je n'avais pas fait attention à un truc. Tu es sur Ubuntu. Dans ce cas, on évite de mettre la configuration dans apache2.conf, on la met plutôt dans le fichier de conf du virtual host qui va bien dans sites-enabled (lien symbolique qui pointe sur sites-available mais tu peux éditer le lien symbolique ou le fichier réel, c'est pareil).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    J'ai fait ca aussi mais meme probleme.

    J'ai esseyé d'ajouté cette regle :

    Quand je met l'adresse du vps dans l'url, elle se redirige vers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://adresse_ip_vps:8080/app02
    , ca rentre bien dans l'application mais le souci le port et le context sont dans l'url

  8. #28
    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
    Lis la doc : Redirect c'est pour rediriger explicitement le navigateur, chose que tu ne veux pas faire...

    Si on revient un cran en arrière avec ta conf de ProxyPassXxx qui semble correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Location />
        ProxyPass http://ip_du_vps:8080/app02/
        ProxyPassReverse http://ip_du_vps:8080/app02/
    </Location>
    Tu obtenais une erreur 500 : il y avait quoi à ce moment-là dans l'error log ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Dans mon error.log, j'ai les meme traces que publiée précedement.

    J'ai changé le fichier ip_du_vps.conf comme cela :
    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
     
    ServerName ip_du_vps
                    ServerAlias ip_du_vps
    		ProxyPass / http://ip_du_vps:8080
     
    		# Be prepared to rewrite the HTML/CSS files as they come back
    		# from Tomcat
    		SetOutputFilter proxy-html
     
    		# Rewrite JavaScript and CSS files in addition to HTML files
    		ProxyHTMLExtended on
     
    		# Output Strict XHTML (add "Legacy" to the end of the line below
    		# to output Transitional XHTML)
    		ProxyHTMLDoctype XHTML 
     
    		# Rewrite HTTP headers and HTML/CSS links for everything else
    		ProxyPassReverse /app02/ /
    		ProxyPassReverseCookiePath /app02/ /
    		ProxyHTMLURLMap /app02/ /
    et la, ca commence a changé un peux, resultat :

    quand je met mon adresse ip du vps dans l'url, j'accede à l'application sans aucun changement dans l'url...

    mais les fichiers js, css et images ne sont plus reconnu.

  10. #30
    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
    Eh oui :
    Citation Envoyé par _Mac_ Voir le message
    Mais il se peut fort que les CSS et les images ne fonctionnent pas. Je te laisse tester.
    Il faut modifier la manière dont les URL de tes images et CSS sont calculées ou forcer à mettre src="/sous-rep/image.jpg" sans le context root devant.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

Discussions similaires

  1. Enregistreur de sons sur Ubuntu 14.10 ne fonctionne pas.
    Par joleperemaudit dans le forum Linux
    Réponses: 2
    Dernier message: 17/12/2014, 23h10
  2. mod_rewrite ne fonctionne pas
    Par stc074 dans le forum Apache
    Réponses: 4
    Dernier message: 25/09/2012, 22h30
  3. mod_rewrite ne fonctionne pas sur mon serveur
    Par lsamourail dans le forum Apache
    Réponses: 2
    Dernier message: 13/01/2008, 13h55
  4. Réponses: 1
    Dernier message: 25/01/2007, 18h19
  5. [UBUNTU] Le php ne fonctionne pas
    Par zuxion dans le forum Ubuntu
    Réponses: 29
    Dernier message: 07/06/2006, 18h48

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