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

Langage PHP Discussion :

url rewriting (mettre du texte a la place des num d'id)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut url rewriting (mettre du texte a la place des num d'id)
    Bonjour!

    voila, j'ai suivi le tuto :
    http://www.webrankinfo.com/dossiers/...-url-rewriting
    donc je pense avoir compruis les bases de de l'url rewriting
    ou comment récrire une adresse de ce type :
    article.php?id=12&page=2&rubrique=5

    en comme cela (plus propre) :
    article-12-2-5.html

    mais pas comment mettre du texte a la place des muméro, genre :
    vaisselle-assiettes.html

    mais de manière dynamique, sachant qu'un numéro devra correspondre au nom de la rubrique ou au nom de l'objet

    merci

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Il peu avoir plusieurs façon d'y parvenir.
    Je vais en évoquer une qui me parais la plus simple.

    Tu dois avoir une Bdd contenant les rubriques, dont un champ genre "rubrique_id".
    Je suppose aussi que tu doit avoir une partie "admin" qui sert à créer/mettre à jours les rubriques.

    Il suffit de créer un nouveau champ "url_rewrite", et dans la partie admin, lors de la création d'une nouvelle rubrique, saisir le nom qui sera utilisé dans l'URL.

    Après ça, dans la partie publique où sont récupérer la ou les rubriques pour les afficher, ou plus particulièrement quand on va créer le ou les liens, et bien on récupèrera le champ "url_rewrite" et l'exploiter (au lieu de l'id).

    Même principe pour les pages, articles, et autre où tu souhaites faire de la réécriture.


    Petite remarque au passage.
    Si on ne met pas les IDs dans l'URL, il faudra être certain que le nom soit unique, sinon il sera impossible de récupérer la bonne rubrique (ou article, page, etc ...).
    Mettre une contrainte d'unicité sur le champ "url_rewrite" serait utile dans ce cas là (plus de doublon possible).


    T'as 1ère suggestion évite ce problème d'unicité car il se basera quand même sur les IDs pour rechercher l'article/page/rubrique associé.
    -> article-12-2-5.html

    Mais rien empêche de faire ceci :
    vaisselle-assiettes-12-2-5.html
    Là aussi plus de problème d'unicité, et la partie "vaisselle-assiettes" n'a aucune utilité techniquement parlant (tout juste utile pour le référencement).

    mais pas comment mettre du texte a la place des muméro, genre :
    vaisselle-assiettes.html
    Attention, ici il manque des infos, comme la page, la rubrique.
    S'il te les faut, il faudra prévoir quelque chose comme :
    -> vaisselle-assiettes/nom-de-la-rubrique/2.html
    Ou -> vaisselle-assiettes/nom-de-la-rubrique/page-2.html


    Prend le temps de parcourir le forum Apache, il est très souvent question de réécriture.
    Il vaut mieux ne pas se tromper dans la manière de générer les liens, ça peut très vite être bloquant (ou compliqué).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    super merci pour la réponse qui m'aide beaucoup

    j'ai donc fait comme tu m'a dis avec un champ url rewriting , dans ma bdd , lier a un champ de mon admin mon admin

    mais je n'ai pas tout compris,

    par ex, si je decide de nommer mes url de cette facon :

    url d'une categorie :
    ---------------------
    veritable url : http://monsite.fr/liste-produit.php?idCategorie=5
    url rewriting : http://monsite.fr/lecteur-cassette-5.html

    ou url d'un article de cette categorie :
    ----------------------------------------
    veritable url : http://monsite.fr/fiche-produit.php?idProduits=1250
    url rewriting : http://monsite.fr/philips-tech-plus-gris-1250.html

    ma méthode est 'elle bonne?
    que je remplisse manuellement (via l'interface de mon admin) le champ url_rewriting de ma bdd
    ou automatiquement (nom du produits avec les mots separé par des tirets) le champ url_rewriting de ma bdd

    une fois le champ url_rewriting rempli (de cette maniere : philips-tech-plus-gris)

    je peux maintenant former mes liens de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo='<a href="http://monsite.fr/'.$url_rewriting.'-'.$idProduits.'.html">liens vers l\'article</a>';?>
    la methode est 'elle bonne?
    est-ce utile de pouvoir les entrer manuellement (laisser le choix a l'administrateur de choisir url), dans quels cas cela peut etre utile?

    encore merci

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    la methode est 'elle bonne?
    La méthode me semble correcte.
    Mais parmi d'autres tout autant correcte.

    Pour exemple, de mon coté je ne mets pas d'extension .html, je trouve cela inutile.
    Une URL comme ceci fonctionne tout aussi bien : -http://monsite.fr/philips-tech-plus-gris-1250
    (observe ce forum, il n'y a pas non plus de .html ... pour exemple)

    Selon comment les règles sont faites dans ton .htaccess (donc ça dépend), si tu crées une page 100% statique (100% html, donc sans code Php), ça peut être un handicape.

    est-ce utile de pouvoir les entrer manuellement (laisser le choix a l'administrateur de choisir url), dans quels cas cela peut etre utile?
    Je ne saisie pas ce que tu sous-entends ???
    La méthode que je t'ai suggéré est la plus simple. Grosso modo, on limite le coté hasardeux, ou autre complication.

    On peu par exemple ne pas créer de champ "rewrite_url", mais créer le nom automatiquement en se basant sur un titre, un nom (titre de catégorie, nom de l'article).
    L'inconvénient, c'est qu'il faut faire des routines de codes pour épurer ces titres/noms pour remplacer les espaces par des tirais, remplacer les caractères spéciaux, et autre trucs pouvant provoquer des erreurs.

    On peu faire aussi un compromis entre ces 2 là, comme conserver le champ "rewrite_url", mais de le mettre à jour automatiquement (update/insert) en se basant sur un titre, un nom, donc sans devoir le saisir.

    Ce qui est certain, c'est qu'il faut se baser sur quelque chose pour générer un nom, un titre, etc ... dans l'URL, et surtout qu'il soit possible de récupérer les infos une fois l'URL réécrite (paramètres/valeurs en GET).

    En somme, il y a toujours moyen d'automatiser plus ou moins les choses, si c'est cela que tu veux dire.


    Pour info, il y a d'autres manières de faire, ça dépend toujours ce que tu recherches, mais surtout comment l'ensemble de ton projet est structuré, et comment il évoluera dans le temps aussi.

    Quelques exemples
    C'est de rajouter le nom de la page dans l'URL :
    Pour une page contact : -http://monsite.fr/contact.html
    ou -http://monsite.fr/contact

    Pour une page des catégories : -http://monsite.fr/categories.html
    ou -http://monsite.fr/categories

    Pour une page d'une catégorie :
    -http://monsite.fr/categorie-10.html
    ou -http://monsite.fr/categorie-10
    ou -http://monsite.fr/categorie/10
    ou -http://monsite.fr/categorie/nom-de-la-categorie-10
    ou -http://monsite.fr/categorie/nom-de-la-categorie/10

    Pour un article :
    ou -http://monsite.fr/article-15.html
    ou -http://monsite.fr/article-15
    ou -http://monsite.fr/article/15.html
    ou -http://monsite.fr/article/nom-de-cet-article-15
    ou -http://monsite.fr/article/nom-de-cet-article/15

    ... etc ...

    Ca peu être utile (voir obligatoire selon le cas) de savoir de quelle page on a affaire.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    encore merci ca m'éclair beaucoup...

    1) ce que je veux dire dans :
    est-ce utile de pouvoir les entrer manuellement (laisser le choix a l'administrateur de choisir url), dans quels cas cela peut etre utile?
    c'est, est-ce utile de pouvoir les entrer manuellement via l'admin "l'url rewrite" genre qu'il tape le nom qu'il veut voir apparaitre dans l'url, genre pour une catégorie , il va taper "vaisselle"
    et bien sur sera automatiquement ajouter au début : http://monsite.fr/
    et a la fin l'id de la catégorie : -9
    ce qui donnera comme url : http://monsite.fr/vaisselle-9

    ou ceci n'a pas d'utilité, autant se baser sur le nom de la catégorie
    et de créer automatiquement l'url rewrite grâce au nom auquel j'ajouterai automatiquement des tirets si celui ci est composé?

    2) dans mon fichier .htaccess,
    une nouvelle ligne de ce type :
    RewriteRule ^objets-communication\.php$ http://www.monsite.fr/liste-produit....orieProduits=9 [L]
    dois être écrite (grace a php) pour chaque catégories et chaques articles, donc plusieurs centaines voir milliers ou il y a t'il une autre astuce?

    3) sinon j'ai un pb
    quand je tape dans l'url
    http://www.monsite.fr/objets-communication.php
    ca me renvois bien vers la bonne page :
    http://www.monsite.fr/liste-produit....orieProduits=9
    mais ca m'affiche l'url "non rewrite" a savoir
    http://www.monsite.fr/liste-produit....orieProduits=9
    bien sur je voudrais que ca me laisse l'url rewrite :
    http://www.monsite.fr/objets-communication.php

    voici mon code ".htaccess":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Options +FollowSymlinks
    RewriteEngine on
     
    RewriteRule ^objets-communication\.php$   http://www.monsite.fr/liste-produit.php?idCategorieProduits=9 [L]
    4) que penses tu du systeme de rewriting de ce celebre site de pompes
    catégorie :
    sous catégorie :
    produit :
    il n'y a plus de tace des catégories/souscategories/produits
    mais selement le nom de la catégorie en question, ou du produit

    encore merci beaucoup

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    encore merci ca m'éclair beaucoup...

    1) ce que je veux dire dans :
    est-ce utile de pouvoir les entrer manuellement (laisser le choix a l'administrateur de choisir url), dans quels cas cela peut etre utile?
    c'est, est-ce utile de pouvoir les entrer manuellement via l'admin "l'url rewrite" genre qu'il tape le nom qu'il veut voir apparaitre dans l'url, genre pour une catégorie , il va taper "vaisselle"
    et bien sur sera automatiquement ajouter au début : http://monsite.fr/
    et a la fin l'id de la catégorie : -9
    ce qui donnera comme url : http://monsite.fr/vaisselle-9

    ou ceci n'a pas d'utilité, autant se baser sur le nom de la catégorie
    et de créer automatiquement l'url rewrite grâce au nom auquel j'ajouterai automatiquement des tirets si celui ci est composé?

    2) dans mon fichier .htaccess,
    une nouvelle ligne de ce type :
    RewriteRule ^objets-communication\.php$ http://www.monsite.fr/liste-produit....orieProduits=9 [L]
    dois être écrite (grace a php) pour chaque catégories et chaques articles, au moment de l'enregistrement de clui ci dans la bdd
    ce qui fera donc plusieurs centaines voir des milliers ou il y a t'il une autre astuce?

    3) sinon j'ai un pb
    quand je tape dans l'url
    http://www.monsite.fr/objets-communication.php
    ca me renvois bien vers la bonne page :
    http://www.monsite.fr/liste-produit....orieProduits=9
    mais ca m'affiche l'url "non rewrite" a savoir
    http://www.monsite.fr/liste-produit....orieProduits=9
    bien sur je voudrais que ca me laisse l'url rewrite :
    http://www.monsite.fr/objets-communication.php

    voici mon code ".htaccess":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Options +FollowSymlinks
    RewriteEngine on
     
    RewriteRule ^objets-communication\.php$   http://www.monsite.fr/liste-produit.php?idCategorieProduits=9 [L]
    4) que penses tu du systeme de rewriting de ce celebre site de pompes

    catégorie :

    sous catégorie :

    produit :


    il n'y a plus de tace des catégories/souscategories/produits
    mais selement le nom de la catégorie en question, ou du produit

    encore merci beaucoup

Discussions similaires

  1. [URL rewriting] Mettre le domaine en paramètre
    Par djynwk dans le forum Apache
    Réponses: 7
    Dernier message: 14/03/2009, 17h41
  2. Réponses: 1
    Dernier message: 09/03/2008, 23h19
  3. Réponses: 2
    Dernier message: 28/02/2008, 16h03
  4. Réponses: 2
    Dernier message: 14/11/2007, 14h49
  5. Réponses: 2
    Dernier message: 02/07/2007, 16h19

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