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 :

Changement d'URL par URL rewriting


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Changement d'URL par URL rewriting
    Bonjour,

    Je bataille depuis quelques heures pour trouver la solution à mon problème qui est de faire une redirection d'une ancienne url PHP vers une nouvelle (le site étant en refonte). La dernière version des directives dans le fichier .htaccess est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^fr/manifestation-montelimar\.php\?evenement=$ FR/montelimar-fiche-manifestation.php?id= [L,QSA]
    avec une variante pour échapper le ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^fr/manifestation-montelimar\.php.evenement=$ FR/montelimar-fiche-manifestation.php?id= [L,QSA]
    En fait il ne se passe rien comme si le modèle de l'expression régulière ne fonctionnait pas...
    voici l'ancienne URL :
    mondomainePointCom/fr/manifestation-montelimar.php?evenement=4316
    et la nouvelle :
    mondomainePointCom/FR/montelimar-fiche-manifestation.php?id=4316

    Quelqu'un peut-il m'aider là-dessus : ça serait avec grand plaisir.
    Merci

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par smartie Voir le message
    En fait il ne se passe rien comme si le modèle de l'expression régulière ne fonctionnait pas...
    C'est normal puisque par défaut la query string ne figure jamais dans ce qui est testé par RewriteRule. Si tu veux travailler avec la query string, le plus simple c'est de passer par un RewriteCond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} evenement=(.*)
    RewriteRule fr/manifestation-montelimar\.php FR/montelimar-fiche-manifestation.php?id=%1 [L]

    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. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    C'est normal puisque par défaut la query string ne figure jamais dans ce qui est testé par RewriteRule. Si tu veux travailler avec la query string, le plus simple c'est de passer par un RewriteCond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} evenement=(.*)
    RewriteRule fr/manifestation-montelimar\.php FR/montelimar-fiche-manifestation.php?id=%1 [L]
    _Mac_ je te remercie pour ta réponse. Effectivement je progresse sauf que je rencontre plusieurs problèmes :
    • l'url apparaissant dans la barre d'adresse du navigateur reste inchangée,
    • du coup la page n'est pas trouvée,
    • mais, chose étonnante, la requête semble se faire sur la nouvelle url!!!??


    Je continue à chercher, mais si tu vois où est l'erreur je te remercie de m'aider.

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Si tu veux que l'URL change il faut demander une redirection explicite en ajoutant le flag R dans les [] du RewriteRule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} evenement=(.*)
    RewriteRule fr/manifestation-montelimar\.php FR/montelimar-fiche-manifestation.php?id=%1 [R,L]

    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. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Si tu veux que l'URL change il faut demander une redirection explicite en ajoutant le flag R dans les [] du RewriteRule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond %{QUERY_STRING} evenement=(.*)
    RewriteRule fr/manifestation-montelimar\.php FR/montelimar-fiche-manifestation.php?id=%1 [R,L]
    _Mac_
    CQFD : parfait, la redirection fonctionne.
    Merci encore pour ton aide.

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

Discussions similaires

  1. [URL rewriting] Rediriger l'URL par défaut du site
    Par akabeb dans le forum Apache
    Réponses: 2
    Dernier message: 25/04/2012, 10h26
  2. Réponses: 4
    Dernier message: 28/01/2008, 17h55
  3. Réponses: 4
    Dernier message: 04/07/2006, 16h37
  4. Parametre par URL
    Par arsgunner dans le forum ASP
    Réponses: 2
    Dernier message: 21/06/2004, 09h53

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