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] redirection avec exceptions


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [URL Rewriting] redirection avec exceptions
    bonjour à tous et toutes,

    Voilà mon soucis :
    1/ j'ai un site1 sur un domaineA, hébergé sur une machine I : http://www.siteA.tdl
    2/ j'ai un site2 sur un second domaineB, hébergé sur une machine II : http://www.siteB.tdl
    3/ sur domaineA (machine I), j'ai aussi les web des users : http://www.siteA.tdl/~user

    je souhaite :
    1/ conserver les web user sur le domaineA et sur la machine I : http://www.siteA.tdl/~user ... ne bouge pas
    2/ le siteA est supprimé et le siteB devient le site officiel, seules quelques pages et dossiers doivent restées accessibles.
    3/ que tout ce que je tape sur un navigateur de http://www.siteA.tdl ou http://www.siteA.tdl/blabla*/* , m'affiche http://www.siteB.tdl
    4/ sauf quelques exceptions clairement identifiées comme http://www.siteA.tdl/machin ... (et bien sur exclure /~user)

    Sur machineI (siteA) j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/$ http://www.siteB.tdl [R]
    mais je ne sais pas faire les "tout sauf..." les ~user (user = une suite de caractère) ET une liste de fichiers et/ou dossiers définis.

    Le gateau serait meme que siteA affiche siteB en gardant son url de siteA.

    Avez vous des pistes ? ou des solutions déjà ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Ne pouvez-vous pas exclure vos différents cas par une règle de réécriture (sur rien) justement avant les autres ?

    Exemple (simplement pour l'idée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     # Pas de réécriture pour "userdir"
    RewriteRule ^~ - [L]
     
    # Réécriture pour le restant
    RewriteRule .* http://www.siteB.tdl%{REQUEST_URI} [R]
    Le tiret au niveau du deuxième "paramètre" ayant pour rôle d'indiquer qu'il n'y a pas de réécriture à effectuer pour les URL correspondantes (donc de servir normalement la ressource).

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par julp Voir le message
    Ne pouvez-vous pas exclure vos différents cas par une règle de réécriture (sur rien) justement avant les autres ?

    Exemple (simplement pour l'idée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     # Pas de réécriture pour "userdir"
    RewriteRule ^~ - [L]
     
    # Réécriture pour le restant
    RewriteRule .* http://www.siteB.tdl%{REQUEST_URI} [R]
    Le tiret au niveau du deuxième "paramètre" ayant pour rôle d'indiquer qu'il n'y a pas de réécriture à effectuer pour les URL correspondantes (donc de servir normalement la ressource).
    merci guru!

    J'ai immédiatement testé, et pour moi c'est plutot ce qui suit qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RewriteRule ^/~ - [L]
    RewriteRule .* http://www.siteB.tdl [R]
    mais je retiens l'idée de request_uri ... mais comme siteA et siteB sont différents (meme pas la techno php vs java) ; peut etre lister les principaux request_uri avec des redirect sur machineB ?

    encore merci.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Donc, j'arrive a ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    RewriteRule ^/~ - [L]
     
    RewriteRule ^/dossier123 - [L]
    RedirectMatch permanent ^/dossier123/(.*) http://www.siteB.tdl/dossier123$1
    RewriteRule ^/page456.html - [L]
    RedirectMatch permanent ^/page456.html http://www.siteB.tdl/page456.html
     
    RewriteRule .* http://www.siteB.tdl [R]
    cela parait il cohérent ?
    J'ai toujours mon soucis de faire fonctionner les 2 tdl en parallele (domainA.tdl = domainB.tdl sauf ~user + exception) mais je prends le temps de re-formuler ma porblématique dans les jours qui viennent (fort de la mise en place des regles ci-dessus).

    Merci à vous.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par _fpl_
    cela parait il cohérent ?
    Pas vraiment : pourquoi faire intervenir RedirectMatch (qui ne tient pas compte des règles de réécriture) au lieu de tout gérer par l'intermédiaire du module de réécriture ?

    Citation Envoyé par _fpl_
    J'ai toujours mon soucis de faire fonctionner les 2 tdl en parallele (domainA.tdl = domainB.tdl sauf ~user + exception) mais je prends le temps de re-formuler ma porblématique dans les jours qui viennent (fort de la mise en place des regles ci-dessus).
    C'est à dire ?

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Citation Envoyé par julp Voir le message
    Pas vraiment : pourquoi faire intervenir RedirectMatch (qui ne tient pas compte des règles de réécriture) au lieu de tout gérer par l'intermédiaire du module de réécriture ?
    Je crois que la principale raison est mon incompétence dans ce domaine
    Vous me conseilleriez de remplacer RedirectMatch permanent par simplement un Rewrite ?

    Citation Envoyé par julp Voir le message
    C'est à dire ?
    J'aurais souhaité faire tourner les 2 tdl en parallèle : que j'appelle http://domain1.tdl/ma_page.html ou http://domain2.tdl/ma_page.html je tomble bien sur la "ma_page.html" qui se trouve physiquement sur domain1. Mais quand je l'appelle à partir du domain2, je souhaite que l'url visible reste domain2.tdl/ma_page.html.
    Cela avec les regles d'exceptions pour des pages et dossiers clairement identifiées et les dossiers user. En sachant que les domain1 et 2 sont sur des machines différentes.
    Suis-je clair?

    Merci

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    J'aurais directement écrit (en espérant avoir préservé le but) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    RewriteRule ^/~ - [L]
     
    RewriteRule ^/dossier123/(.*) http://www.siteB.tdl/dossier123$1 [R=302,L]
    RewriteRule ^/page456.html http://www.siteB.tdl/page456.html [R=302,L]
     
    RewriteRule .* http://www.siteB.tdl [R]
    Citation Envoyé par _fpl_
    J'aurais souhaité faire tourner les 2 tdl en parallèle : que j'appelle http://domain1.tdl/ma_page.html ou http://domain2.tdl/ma_page.html je tomble bien sur la "ma_page.html" qui se trouve physiquement sur domain1. Mais quand je l'appelle à partir du domain2, je souhaite que l'url visible reste domain2.tdl/ma_page.html.
    Cela avec les regles d'exceptions pour des pages et dossiers clairement identifiées et les dossiers user. En sachant que les domain1 et 2 sont sur des machines différentes.
    Suis-je clair?
    Il est impossible (il y a nécessairement redirection) de conserver l'adresse originale du serveur 1 (ou nom de domaine 1) pour demander une ressources ailleurs sans faire intervenir le module proxy (qu'il est possible d'utiliser à partir des règles de réécriture en faisant mention du flag P).

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour la correction ; cela confirme celle que j'avais initiée de moi-même.

    Citation Envoyé par julp Voir le message
    Il est impossible (il y a nécessairement redirection) de conserver l'adresse originale du serveur 1 (ou nom de domaine 1) pour demander une ressources ailleurs sans faire intervenir le module proxy (qu'il est possible d'utiliser à partir des règles de réécriture en faisant mention du flag P).
    J'avais aussi pensé au proxy, mais j'utilise déjà modjk pour apache/tomcat. J'avais cru comprendre que les 2 ensembles posaient quelques soucis. Votre avis?

    Dans tous les cas, merci de votre aide.

    fpl

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par _fpl_
    J'avais aussi pensé au proxy, mais j'utilise déjà modjk pour apache/tomcat. J'avais cru comprendre que les 2 ensembles posaient quelques soucis. Votre avis?
    Avec modjk c'est probable de par le fonctionnement du tout à moins qu'il ne soit possible de faire intervenir son alternative qu'est le module mod_proxy_ajp (versions 2.2) pour prendre en charge cette technologie (qui n'est pas le mienne en revanche ).

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/03/2012, 23h23
  2. Url rewriting & redirection avec paramètres
    Par dom_bxl dans le forum Apache
    Réponses: 1
    Dernier message: 07/04/2009, 12h17
  3. [URL Rewriting] Redirection des posts avec WordpressMu
    Par greglebad dans le forum Apache
    Réponses: 1
    Dernier message: 25/04/2008, 14h48
  4. [URL Rewriting] Redirection HTTPS avec exception
    Par grunk dans le forum Apache
    Réponses: 2
    Dernier message: 28/02/2008, 15h04
  5. Url Rewriting - Redirections invisibles
    Par MicaelFelix dans le forum Apache
    Réponses: 1
    Dernier message: 21/07/2007, 20h56

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