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

Zend Framework PHP Discussion :

Comment garder la compatibilité des anciennes url ?


Sujet :

Zend Framework PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut Comment garder la compatibilité des anciennes url ?
    Bonjour,

    Hier soir, nous avons mis en ligne la version 2 de www.seetiz.be.
    Elle est maintenant entièrement basée sur ZF 1.7 en MVC.
    Mon soucis est qu'aucune des anciennes urls ne correspondent à la nouvelle version.

    Exemple

    Avant: http://www.seetiz.be/index.php?ID=video&VID=104
    Maitnenant: http://www.seetiz.be/fr/shops/brussels/104-gabriele_vintage

    Je pensais créer une redirection sur toutes les addresse du style 'index.php?ID=video' vers un controller nommé 'compatitbility'.
    Mais je n'arrive pas à comprendre comment faire la redirection ni dans le .htacces, ni avec une route spécifique pour le router ...

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Tu pourrais temporairement inclure un fichier chargé d'envoyer des redirections 301 (Moved permanently) pour les personnes ayant accéder au site via les anciennes URL.

    Pour peu que les noms des paramètres diffèrent d'une version à l'autre de ton site et que les identifiants des vidéos soient toujours les mêmes :

    Raw url : index.php?ID=video&VID=104
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_GET['ID']) && isset($_GET['VID'])){
        // ICI tu construis la nouvelle URL à partir de l'identifiant
        header("Location: ".$url, true, 301);
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Bonjour ThomasR,

    Tu me conseils de mettre en place un plugin pour cela ?
    Je ne vois pas trop où implémenter ce code...

    A la base, j'avais penser à l'htaccess avec un truc du genre, mais ça n'a pas l'air de fonctionner :

    RewriteRule ^index\.php(\?ID=video.*) compatibility/info$1 [r=301,l]

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par oliviercuyp Voir le message
    Bonjour ThomasR,

    Tu me conseils de mettre en place un plugin pour cela ?
    Je ne vois pas trop où implémenter ce code...
    Je ne connais malheureusement pas ZF (bouuuh ) pour t'aiguillier davantage.
    Tu pourrais simplement intégrer ce code à ton control principal ?




    Citation Envoyé par oliviercuyp Voir le message
    A la base, j'avais penser à l'htaccess avec un truc du genre, mais ça n'a pas l'air de fonctionner :
    Il ne faut pas que tu envoie un 301 vers /compatibility/info/ quand les gens vont venir sur ta page index.php?ID=12 car cela signifie que le contenu à jour de index.php?ID=12 se situe dans la page compatibility/info/.

    Dans le fichier htaccess tu n'as pas les moyens de reconstituer la nouvelle URL, la solution serait donc, comme tu le prescris, de créer un controlleur qui va "catcher" (attraper) les urls de la forme index.php?ID=(.*) et rediriger vers leur nouvel équivalent avec une entête en 301. Ou alors faire deux redirections 301 à la suite ?

    Soit une page /friendly-url-builder/ chargée de construire une url à partir du ID et du VID puis de rediriger en 301.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Redirect ^index.php?ID=(.*)$ /friendly-url-builder/$1
    Redirect ^index.php?ID=(.*)&VID=(.*)$ /friendly-url-builder/$1/$2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_GET['ID']) && isset($_GET['VID'])){
        // ICI tu construis la nouvelle URL à partir de l'identifiant
        header("Location: ".$url, true, 301);
    }
    Utiliser RewriteRule a simplement pour effet de créer une url virtuelle pointant vers une url réelle.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Merci pour tes réponses ThomasR

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

Discussions similaires

  1. Comment garder la taille des boutons dans un GridLayout
    Par Spiritkiller dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 16/11/2009, 23h15
  2. Réponses: 4
    Dernier message: 12/03/2009, 14h27
  3. Réponses: 6
    Dernier message: 01/09/2006, 18h04
  4. [Conception] Comment enregistrer des photos (url) dans sa base
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/06/2006, 23h28
  5. Comment récupérer les icones des URL?
    Par Blo0d4x3 dans le forum Windows
    Réponses: 3
    Dernier message: 26/05/2006, 15h29

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