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 :

Apache rewriting pas trop simple


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut Apache rewriting pas trop simple
    Bonjour,

    voilà, j'ai un probleme de redirection suite à changement de serveur et de nom de domaine...

    Une URl du type:

    http://mon.domaine.com/users/prenom.nom/*

    devrait pointer vers
    http://nouveau.domaine.com/nom/*

    et évidement, tous les fichiers, index.php avec des varaible devraient suivrent...

    S'il n'y avait que le domaine, je saurais faire, mais récupérer juste le nom et le metter dans la nouvelle url.... du genre....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine On
    RewriteRule ^/users(.*)  http://nouveau.domaine.com/$1 [R,L]
    Comme je voudrais le rendre générique pour tous, je pense le mettre dans les paramètres du virtualHost.... plutôt que dans un .htaccess a chaque utilisateur.

    Merci pour votre réponse.
    Alanoo

  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
    Tu y es presque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine On
    RewriteRule ^/users/([^.]*)\.([^/]*)/  http://nouveau.domaine.com/$2 [R,L]
    $1 (= "([^.]*)") contient le prenom et $2 (= "([^/]*)") le nom. A tester, je ne l'ai pas fait.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut Presque ça mais....
    merci, j'arrive maintenant à virer le prénom,
    mais tout ce qui est derrière le domaine ne suivant pas (arborescence, index.php avec variables etc...)

    Donc j'ai mis cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^/users/([^.]*)\.([^/]*)/(.*)  http://nouveau.domaine.com/$2/$3 [R,L]
    Et ça marche nickel sauf qu'il reste juste un probleme : sur le nouveau site, le nom est tout en minuscule, alors que sur l'ancien, c'etait Prenom.Nom ....

    Donc comment transformer Nom => nom via apache ?

    Merci, je sens que la solution n'est pas loin...

    Alanoo

  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
    Oui, la règle est très bien. Tu peux éventuellement ajouter un QSA dans les [] en plus du R et du L ([R,L,QSA]) pour être certain que les éventuels paramètres d'URL seront également transmis.

    Pour la transformation en minuscule, euh, je sais pas trop. Faut voir dans la doc Apache s'il y a des infos.

    EDIT : si, il y a une fonction tolower qui existe. Ca doit donner une truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteMap    lowercase    int:tolower
    RewriteRule ^/users/([^.]*)\.([^/]*)/(.*)  http://nouveau.domaine.com/${lowercase:$2}/$3 [R,L,QSA]

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut Suite et fin de mon pb...
    oups, j'étais parti farfouiller dans les expressions régulière de perl et j'ai essayé ça, mais ce n'était pas interprété...

    'il n'y a pas de \E, la changement de casse a lieu jusqu'à la fin de la chaîne. Les expressions rationnelles \L\u$word ou \u\L$word convertissent le premier caractère de $word en majuscule et les autres caractères en minuscules.
    Donc un grand grand merci... ça marche nickel !!!

    Alanoo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. un programme trop simple qui ne marche pas
    Par smp82 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/10/2008, 15h46
  2. Prob somme SQL (pas trop facile, help!!!!!)
    Par nachi dans le forum Langage SQL
    Réponses: 7
    Dernier message: 20/07/2005, 16h42
  3. Pipes => pas plus simple ?
    Par Jorus dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 17h53
  4. Réponses: 5
    Dernier message: 23/06/2004, 22h23

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