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

Autres composants PHP Discussion :

[Controller_Route] Réécriture d'URL


Sujet :

Autres composants PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Par défaut [Controller_Route] Réécriture d'URL
    Bonjour,

    J'ai un web a été crée avec le Zend Framework 1.5. Donc de façon générale, mes url sont de la forme http://www.monsite.com/Controlleur/Action/Paramètre/Valeur
    Mon but est de ne pas avoir des URL complexes mais plutôt des URL compréhensibles afin de faciliter le référencement de mon site.
    Exemple: au lieu de http://www.monsite.com/news/show/idinfo/113785 , j'aimerais avoir un truc du genre
    http://www.monsite.com/news/GM_en_pleine_crise

    Que dois-je faire ? Merci d'abvance pour vos apports

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Pour ça, il faut que tu travailles sur les routes personnalisées.

    Tu peux commencer par jeter un oeil sur la documentation officielle ou sur la faq pour une description du routage :
    http://zend-framework.developpez.com...er#route-intro
    http://framework.zend.com/manual/fr/...er.router.html

    Pour essayer de répondre plus spécifiquement à ta question, peut-être que la route suivante peut y réponrde (mais je ne suis pas un spécialiste du routage personnalisé, ne l'utilisant pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    new Zend_Controller_Router_Route('news/:title',
        array('controller' => 'news',
                'action' => 'show'))
    Cette route devrait rediriger une adresse http://www.monsite.com/news/GM_en_pleine_crise vers le contrôleur news, action show, en passant un paramètre 'title' ayant la valeur "GM_en_pleine_crise".

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    Pour convertir tes ids en noms compréhensibles, tu devras avoir dans ta table de news un champ unique 'urlName' qui te permètera d'accéder directement à l'article en question. Tu peux toujours prende le sujet et le passer dans une serie de filtres pour enlever les accents et les caractères indésirable tout en gardant à l'esprit qu'après cette transformation, tu devras vérifer si cet nouvelle 'urlName' n'existe pas déjà dans la table et dans ce cas ajouter un compteur et revérifer ...
    Ce type de gestion est un peu compliquée à gérer.

    La deuxième solution est de concaténer l'id et l'urlName, genre :

    http://www.monsite.com/news/34-GM_en_pleine_crise

    Ce qui te permet d'avoir l'id directement disponible et de ne pas gérer les conflicts de 'urlName'. De plus, le champ 'urlName' ne doit plus être unique.
    Tu peux donc créer une route comme Eusebe te l'a conseillé en y ajoutant des requirements, du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    new Zend_Controller_Router_Route('news/:title',
        array('controller' => 'news',
                'action' => 'show'),
        array('title' => '\d-[a-z_]+')
    )
    Ce qui force le format de ton paramètre 'title'.

    Voilà, en esprérant que ça a pu t'aider...

Discussions similaires

  1. Réécriture d'url dans fichier ASP
    Par Ishizaki dans le forum ASP
    Réponses: 1
    Dernier message: 22/02/2007, 11h44
  2. ASP + Access, réécriture d'URL
    Par duchesnef dans le forum ASP
    Réponses: 5
    Dernier message: 14/09/2006, 09h54
  3. La réécriture d'URL avec Apache
    Par agencep dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2006, 16h37
  4. Réécriture d'url en asp.
    Par éelise dans le forum ASP
    Réponses: 4
    Dernier message: 13/12/2005, 08h53

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