rewriting d'un nombre en chaine de caractère

Discussion dans 'URL Rewriting et .htaccess' créé par oliwood, 16 Juin 2007.

  1. oliwood
    oliwood Nouveau WRInaute
    Inscrit:
    16 Juin 2007
    Messages:
    4
    J'aime reçus:
    0
    Bonjour à tous !

    Merci pour votre site et tout les exemples expliquant les techniques du rewriting 8)
    Donc, en suivant ces exemples j'arrive effectivement à faire 2-3 trucs.
    Mais j'ai un problème lorsque je tente de rewriter un id de catégorie (nombre) en chaine de caratères... j'ai bien trouvé des questions similaires sur le forum, mais rien à faire :cry:

    Alors sur mon site mes liens étaient comme ça :
    categories.php?id=47

    que j'ai modifié en :
    maison-jardin.html

    Dans mon htaccess, si je fais le rewriting en dur ça marche :
    RewriteRule ^maison-jardin\.html$ http://www.monsite.com/categories.php?id=47 [L]

    Mais comment faire une règle qui marche pour toutes les catégories ?

    Dans le forum j'ai trouvé des posts similaires et j'essaie des trucs comme ça :
    RewriteRule ^(.*)\.html$ http://www.monsite.com/categories.php?id=$1 [L]

    Il m'ouvre bien la page catégorie, mais forcément comme l'id n'est spécifié nulle part, les données liées à la catégorie ne s'affichent pas :cry:

    Mercid e votre aide
    Olivier
     
  2. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    Salut, si tu n'a pas d'ID dans ton url, tu ne peux pas !

    Une solution serait de faire ça :
    RewriteRule ^(.*)\.html$ categories.php?cat=$1 [L]
    et dans la page categories.php tu faut matcher le contenu de ta base de donnée pour récupérer l'ID ;o)



    PS: il ne faut pas mettre http://... dans la deuxième partie de le rewriterule, sinon le serveur renvoie une redirection (302 il me semble)
     
  3. oliwood
    oliwood Nouveau WRInaute
    Inscrit:
    16 Juin 2007
    Messages:
    4
    J'aime reçus:
    0
    Merci de ta réponse rapide !
    Tu dis "matcher le contenu de ta base de donnée pour récupérer l'ID" ?

    En me basant par exemple sur l'url, donc parser l'url, récupérer le nom de la catégorie et la comparer avec ma bdd pour récupérer l'ID ?
    Mais dans ce cas, mon rewriting ne me sert plus à rien ??
     
  4. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    si si, ton rewriterule te sert à récupérer la variable $_GET[cat] à matcher
     
  5. oliwood
    oliwood Nouveau WRInaute
    Inscrit:
    16 Juin 2007
    Messages:
    4
    J'aime reçus:
    0
    Je suis désolé, mais je comprends plus trop là...
    Pour pouvoir récupérer l'id, il faut que je le passe dans mon url
    Dans mon cas, sur ma page index j'ai transformé mon url de :
    categories.php?id=47
    en
    maison-jardin.html

    Du-coup, j'obtiens de zolies url du style : monsite.com/maison-jardin.html :D à la place de monsite.com/categories.php?id=47
    Donc, dans mon htaccess je récupére maison-jardin.html et non un id...

    Alros est-ce que je dois rechanger mon lien sur ma page index ?
    Dans ma page categories.php j'ai bien un code qui récupère l'id
    $id = $_GET["id"];
    Mais je n'arrive pas à matcher car pour l'instant je ne suis pas en mesure de le faire dans mon htaccess
    Sauf si dans mon htaccess je le mets en dur (mais ce n'est pas utilisable sur l'enssemble du site :cry: )
    RewriteRule ^maison-jardin\.html$ categories.php?id=47 [L]

    Merci de ton aide
    A+
     
  6. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    Reprenons au début :

    - Sois tu fais des url du type chaise-de-jardin-45.html avec la rewriterule suivante :
    RewriteRule ^(.+)-([0-9]+)\.html$ categories.php?id=$2 [L]

    - Soit tu fais des url du type chaise-de-jardin.html avec la rewriterule suivante :
    RewriteRule ^(.+)\.html$ categories.php?titre=$1 [L]
    et au début de la page categories.php tu fais une recherche sur ta base de donnée pour pouvoir retrouver l'id (45 dans l'exempe) correspondant au $_GET[titre] ("chaise-de-jardin" dans l'exemple)

    capito ?
     
  7. oliwood
    oliwood Nouveau WRInaute
    Inscrit:
    16 Juin 2007
    Messages:
    4
    J'aime reçus:
    0
    capito, si señor
    muchos gracias
    :lol:
     
Chargement...
Similar Threads - rewriting nombre chaine Forum Date
Url rewriting sur url à nombres de mots variables URL Rewriting et .htaccess 8 Septembre 2007
rewriting avec des - en nombres URL Rewriting et .htaccess 21 Août 2006
nombreuses questions concernant l'URL Rewriting URL Rewriting et .htaccess 9 Mai 2006
URL rewriting Nombre en Texte URL Rewriting et .htaccess 1 Octobre 2005
Problème: nombre de variables dans l'URL et rewriting URL Rewriting et .htaccess 1 Mars 2005
URL Rewriting, Nombres de pages sur un site "Infini&quo URL Rewriting et .htaccess 22 Avril 2003
URL rewriting et nombre de parametres variable! URL Rewriting et .htaccess 11 Février 2003
Paramètres urls & urlrewriting => alphabétiques ou codés ? Problèmes de référencement spécifiques à vos sites 30 Mars 2022
Problème url rewriting et redirection URL Rewriting et .htaccess 4 Février 2022
URL rewriting d'images URL Rewriting et .htaccess 22 Janvier 2022
petit soucis url rewriting URL Rewriting et .htaccess 17 Janvier 2022
url rewriting ne fonctionne pas chez moi URL Rewriting et .htaccess 4 Août 2021
URL rewriting et REGEX bonnes pratiques Développement d'un site Web ou d'une appli mobile 9 Septembre 2020
supprimer /index.html sans url rewriting, possible ? URL Rewriting et .htaccess 13 Novembre 2019
Je bloque sur le rewriting des URL contenant un ? URL Rewriting et .htaccess 3 Septembre 2019
récupération du get après rewriting URL Rewriting et .htaccess 21 Juin 2019
Ralentissement url rewriting URL Rewriting et .htaccess 1 Mai 2019
URL Rewriting Débuter en référencement 17 Avril 2019
Conflit de redirection 301 et Urlrewriting Netlinking, backlinks, liens et redirections 20 Février 2019
URL REWRITING et redirection 301 URL Rewriting et .htaccess 24 Janvier 2019