Comment ré-écrire un lien en fonction du contenu...

Discussion dans 'URL Rewriting et .htaccess' créé par morren, 17 Novembre 2010.

  1. morren

    morren Nouveau WRInaute

    Inscrit:
    17 Mars 2010
    Messages:
    6
    J'aime reçus:
    0
    Bonjour à tous,

    Je cherche et ne trouve pas de réponse ou des réponses en chinois médiéval...

    Voila exactement ce que je cherche à faire.
    Je voudrai que mon url se ré-écrive en fonction du titre de mon article (balise h1).
    Ex. Mondomaine.fr/Le-titre-principale-de-mon-article.html

    Avec des trucs du style article?toto=1&bidule=2 , pas de souci, là je sais écrire la règle. Ça se complique considérablement lorsque je ne connais pas à l'avance la longueur et le nombre de mots qui seront dans le titre (écris par plusieurs auteurs)... et qui doivent placer eux même leurs fichiers dans la rubrique articles sans à avoir à tout ré-écrire...
     
  2. reglisse

    reglisse WRInaute passionné

    Inscrit:
    15 Novembre 2005
    Messages:
    1 082
    J'aime reçus:
    0
    il faut récupérer le titre dans une variable, le stocker dans une base, le traiter afin qu'il soit possible de l'inclure dans une url...

    ps : va falloir se mettre au chinois médiéval
     
  3. HawkEye

    HawkEye WRInaute accro

    Inscrit:
    23 Février 2004
    Messages:
    18 166
    J'aime reçus:
    0
    Pas besoin de chinois médiéval, en fait.
    Le mot que tu cherches, c'est un slug.

    Lors de la publication de ton article, il faut qu'une fonction nettoie le titre (accents, stop words, caractères superflus), ou que tu le fasses toi-même, afin de déterminer un "slug" (dans ton cas: "le-titre-principal-de-mon-article").
    En sauvant ton article dans ta base de données, le slug sera enregistré dans un champ.

    La règle de réécriture à mettre dans ton fichier .htaccess sera:

    Code:
    RewriteEngine On
    RewriteRule ^articles/(.*)\.html$ articles.php?slug=$1 [/L]
    ...et le couple php/MySQL fera le reste... une simple "SELECT [...] FROM [...] WHERE `slug` LIKE '$slug'".

    > à noter bien sûr que slug doit être indexé et unique dans ta db.
     
  4. morren

    morren Nouveau WRInaute

    Inscrit:
    17 Mars 2010
    Messages:
    6
    J'aime reçus:
    0
    OK ! Merci, voila effectivement un début de réponse plus clair ou du moins (pour moi) une piste qui va me permettre de chercher plus loin le fonctionnement de ce fameux "Slug" !

    En voila bien un drôle de nom tiens !
    Heureusement que j'avais pas des parents informaticiens, car sait-on jamais, j'aurais pu m'appeler Slug :? :lol:

    Plus sérieusement merci beaucoup, je sais où chercher maintenant !
     
  5. HawkEye

    HawkEye WRInaute accro

    Inscrit:
    23 Février 2004
    Messages:
    18 166
    J'aime reçus:
    0
  6. milkiway

    milkiway WRInaute accro

    Inscrit:
    3 Février 2004
    Messages:
    4 968
    J'aime reçus:
    0
    HawkEye, pourquoi utilises tu un LIKE? c'est assez lourd.
     
  7. reglisse

    reglisse WRInaute passionné

    Inscrit:
    15 Novembre 2005
    Messages:
    1 082
    J'aime reçus:
    0
    oui merci HawkEye mais pour un débutant le couple php/mysql peut bien paraitre du chinois médiéval
     
  8. spout

    spout WRInaute accro

    Inscrit:
    14 Mai 2003
    Messages:
    8 665
    J'aime reçus:
    2