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 Rewriting avec Proxy


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut URL Rewriting avec Proxy
    Bonjour,

    J'ai un serveur apache où tourne une application Zend Framework. j'ai donc des Alias vers mon dossier image, css ou js. J'ai aussi le .htaccess suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ /index.php [NC,L]
    En accès direct tout fonctionne bien avec mon VirtualHost suivant :
    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
     
    <VirtualHost *:80>
            DocumentRoot /var/www/html/2012_gestion_capacites/public/gestion
            ServerName test.un.deux
            ServerAlias test.network.un/test_backup/
            Alias /log /var/www/html/2012_gestion/log
            Alias /css /var/www/html/2012_gestion/public/css
            Alias /js /var/www/html/2012_gestion/public/js
            Alias /img /var/www/html/2012_gestion/public/img
            Alias /lib /var/www/html/2012_gestion/lib
            SetEnv APPLICATION_ENV "development"
     
    <Directory "/var/www/html/2012_gestion/public/gestion">
            Options Indexes FollowSymLinks MultiViews
            Order allow,deny
            Allow from all
            AllowOverride all
    </Directory>
    </VirtualHost>
    Quand je vais à cette adresse : http://test.un.deux/
    Tout fonctionne correctement.

    Là où le bât blesse, c'est que je dois passer par un proxy pour accéder à mon serveur depuis l'extérieur. Et je perd les réécritures d'URL et les Alias de mon virtualHost...

    Je ne sais pas comment faire. Au niveau de mon proxy je fais un Proxypass et un ProxyPassReverse.

    J'ai donc accès à cette URL depuis l'extérieur : http://url-externe.com/mywebsite/

    Cette URL est redirigé par le proxy vers http://test.un.deux/. Et là je n'ai plus d'images rien du tout et la réécriture d'URL ne se fait pas correctement. J'obtiens ceci après la réécriture :
    http://url-externe.com/MODULE/CONTROLLER/VIEW
    Au lieu de ceci :
    http://url-externe.com/mywebsite/MODULE/CONTROLLER/VIEW

    J'ai pensé qu'il fallait mettre mes règles et mes alias sur le proxy mais cela ne fonctionne pas et affecte les autres sites du proxy.

    Je ne sais pas comment faire.

    Vous avez une idée ? C'est possible que mon Apache gérant mon appli puisse détecter qu'une requête vient d'un proxy ?

    D'avance merci de 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
    Le problème n'est pas côté Apache mais côté code HTML renvoyé par ton site : il appelle les ressources par des URL relatives à la racine du site (<img src="/..."). Deux contournements possibles : tu modifies ton application pour corriger les URL des ressources et qu'elles soient compatibles avec les différentes URL, ou bien tu utilises le module mod_proxy_html qui permet à Apache de réécrire un peu le code HTML à la volée pour ajouter en dynamique le /mywebsite qui manque.

  3. #3
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Aie aie aie...

    Moi j'écris toujours mes URL de manière relative de façon à ne jamais avoir ce genre de problème... Enfin normalement...

    Je vais regarder du côté de mod_proxy_html mais ZF est quand même perdu avec ce répertoire http://url-externe.com/mywebsite/ il croit que mywebsite est un module. Ce qui n'est pas le cas... Erf...

    Car j'ai essayé de mettre des URLs absolu cela ne marche pas mieux... Cela fait tout buguer et les Alias ne fonctionne pas non plus...

  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
    Avant de tester quoi que ce soit, il faut être sûr que le problème est bien celui que je décris (je peux me tromper...). Pour cela, le premier truc à faire c'est regarder le code HTML reçu par le navigateur pour voir s'il y a bien un problème avec les URL. Ca peut aussi venir d'une balise <base>, d'un code JavaScript, bref de plein de choses.

  5. #5
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut
    Merci de ton aide mac grâce à tes indications j'ai réussi à faire avancé un peu les choses. j'arrive à accéder à mes modules/controller/view

    Mais j'ai toujours un problème d'Alias. En local j'ai des alias de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Alias /css /var/www/project/public/css
    Mais avec le proxy reverse mes alias locaux ne sont pas pris en compte. Une idée, une piste pour m'éclairer ?

    D'avance merci.

  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
    C'est quoi un alias local ? Tu veux dire que les alias et la conf du reverse proxy sont dans le même serveur Apache ?

Discussions similaires

  1. [URL Rewriting] avec titres textuels
    Par dl_jarod dans le forum Apache
    Réponses: 13
    Dernier message: 23/01/2008, 14h13
  2. url rewriting avec tomcat en standalone
    Par julien20vt dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 18/01/2008, 13h59
  3. URL Rewriting avec lettres
    Par Alexandrebox dans le forum Apache
    Réponses: 7
    Dernier message: 22/11/2007, 13h22
  4. Si vous avez des questions sur Apache, HTAccess, URL rewriting avec Apache, etc
    Par Marc Lussac dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 28/08/2007, 19h09
  5. [URLRewriting] URL Rewrite avec Language
    Par Prosis dans le forum Apache
    Réponses: 15
    Dernier message: 28/02/2007, 19h28

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