Reecriture d'URL, pb de récupération d'une variable

Discussion dans 'Débuter en référencement' créé par alouesten, 30 Octobre 2006.

  1. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Bonjour

    J'ai un problème précis concernant de la réécriture d'URL

    Je souhaite transformer des URL de type
    /page.php?name=blo,blabla&num=98

    en /blo,blabla.98.html

    J'ai donc un .htaccess qui fait ceci :

    RewriteRule ^(.*).(.[0-9]+).html$ /page.php?name=$1&num=$2

    Je récupère ensuite la variable $_GET['num'].

    Ca fonctionne uniquement quand le paramètre num est composé de deux chiffres.

    Quand num est composée de 1 chiffre,ex
    /blo,blabla.9.html
    ça me met $num=.9
    au lieu 9

    Quand num est composée de 3 chiffre,ex
    /blo,blabla.101.html
    ça me met $num=01
    au lieu de 101

    Avec 2 chiffres, ça fonctionne.

    Argh, je désespère
     
  2. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    pourquoi le . avant [0-9] ?
     
  3. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    En effet, le premier point du bloc .(.[0-9]) ne sert a rien, ça change rien à la situation.
    PAr contre le deuxième point du (.[0-9]) est nécessaire sinon il ne me prend qu'un chiffre.

    Voici donc ou j'en suis ;

    RewriteRule ^(.*)(.[0-9]+).html$ /page.php?name=$1&num=$2

    et ça fonctionne pas mieux
     
  4. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Petite précision, il me prend d'ailleurs le . dans tous les cas, j'obtiens
    $num== ".103"
    ou $num== " .10"
    ou $num== ".1"

    je l'enlève ensuite en php de la variable $num pour avoir un chiffre propre.
     
  5. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    et changer le . par un - pour separer ton chiffre, ca irait pas mieux ? car RewriteRule ^(.*)-([0-9]+).html$ /page.php?name=$1&num=$2
    marche tres bien
     
  6. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    pourquoi il n'y a pas de , dans l'expression de départ ?
    ensuite un "." correspond à n'importe quel caractère. Pour que ça ne soit que pour un "." il faut l'échapper \.
     
  7. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Pour les tirets, mon souci est que de nombreuses pages ont été indexées par les robots avec des . dans les URL. Je ne veux pas perdre le bénéfice de ces pages en changeant toutes les URL des pages traitées selon cette méthode.

    Je viens de me rendre compte de ce qui fonctionne pas, j'ai mis en place des articles 101,102 et 103 ce we, et voilà ma surprise... tout fonctionnait très bien avant..

    Je suis vraiment à la recherche du pourquoi du comment : pourquoi cette règle n'admet une longueur de 2 caractères à ce satané paramètre num ???

    Pour l'échappement du . le souci ne se pose plus, je l'ai enlevé de la règle, qui est comme suit :

    RewriteRule ^(.*)(.[0-9]+).html$ /page.php?name=$1&num=$2

    pour les mêmes résultats
     
  8. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Bon a force de tâtonner j'ai résolu le souci en mettant qomme règle :

    RewriteRule ^(.*)\.([0-9]+).html$ /page.php?name=$1&num=$2


    J'ai plus qu'a essayer de comprendre ce que j'ai fait.

    Merci de vos réponses
     
  9. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    tout ca etait a cause de ton "." comme separateur
     
  10. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    ben non, le + sert à lui indiquer qu'il faut 1 ou plus chiffres.
    Sinon, je ne vois toujours pas la virgule
     
  11. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Bon tout s'embrouille, ça marche pas finalement, j'avais mal rafraîvhi mon cache.

    J'en suis là:

    RewriteRule ^(.*)\.([0-9]+).html$ /mkt.php?name=$1&num=$2

    blo,blabla.103.html me renvoie 03 pour num
    blo,blabla.70.html me renvoie 70 pour num
    blo,blabla.8.html me renvoie .8 pour num.
     
  12. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    /page.php?name=blo,blabla&num=8 me renvoie .8

    c est ca qui te rencoi .8 ou l'url avant re-ecriture ?
     
  13. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Non, c la réécrite qui m'envoie .8 :

     
  14. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    je viens de tester sur mon serveur, ca marche, regarde plutot du coté php comment tu le traite le resultat
     
  15. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Mon traitement:

    Code:
    $num=$_GET['num'];
    $num=str_replace(".","",$num);
    $query = mysql_query("select * from contenu where id = ".$num."");
    ...
     
  16. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    pourquoi "$num=str_replace(".","",$num); " ?

    ca ->
    RewriteRule ^(.*)\.([0-9]+).html$ /mkt.php?name=$1&num=$2
    avec
    $query = mysql_query("select * from contenu where id = ".$_GET['num']."");
    fonctionne sur mon serveur
     
  17. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Pour le cas a un chiffre ou num me renvoie un point dans la variable, je le nettoie.
     
  18. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    non mais avec ta regle il ne doit pas te renvoyer de point. le probleme ne vient pas de ta regle. soit du coté de ton serveur (mutualisé ? dédié) soit ... je ne vois pas
     
  19. alouesten
    alouesten WRInaute discret
    Inscrit:
    23 Décembre 2005
    Messages:
    69
    J'aime reçus:
    0
    Bon c'est l'embrouille totale. J'ai tout quitté, suis revenu qqes minutes plus tard, le .
    htaccess en ligne que j'avais totalement modifié était revenu à la version de base.

    Résultat, en effet ça fonctionne, la suppression du point ne sert plus à rien, argh tout ce temps pour ça ..

    Merci e-kiwi
     
Chargement...
Similar Threads - Reecriture récupération variable Forum Date
Réecriture d'URL et redirection pages AMP URL Rewriting et .htaccess 29 Mai 2021
WordPress réécriture d'URL domaine.TLD/COUNTRYCODE/ vers domaine.ccTLD URL Rewriting et .htaccess 9 Mai 2021
Comment faire une redirection des URL en + de la réécriture d'URL ? URL Rewriting et .htaccess 13 Septembre 2020
Réécriture d'articles, est-ce une bonne idée de couper ses articles? Rédaction web et référencement 25 Mai 2020
Réécriture et robots.txt Débuter en référencement 10 Octobre 2019
Réécriture HTTPS / WWW / redirect, etc ... URL Rewriting et .htaccess 10 Juin 2019
Réecriture simple qui ne fonctionne pas URL Rewriting et .htaccess 20 Février 2019
Faire une redirection 301 et une réécriture en même temps (.htaccess) URL Rewriting et .htaccess 16 Décembre 2018
Réécriture url et htaccess URL Rewriting et .htaccess 3 Octobre 2018
Réecriture url sur Shopify e-commerce 15 Juin 2017
Réécriture URL supprimer home/annugrbz/public_html URL Rewriting et .htaccess 24 Novembre 2016
Apache => Ngnix - Réécriture RewriteCond URL Rewriting et .htaccess 1 Février 2016
Réécriture d'url directory URL Rewriting et .htaccess 29 Janvier 2016
Réécriture lien URL Rewriting et .htaccess 24 Septembre 2015
Réécriture dynamique URL Rewriting et .htaccess 15 Septembre 2015
réécriture avec query string URL Rewriting et .htaccess 22 Août 2015
Modification d'une régle de réécriture avec redirection URL Rewriting et .htaccess 2 Juin 2015
Réécriture d'URL et référencement naturel Rédaction web et référencement 10 Avril 2015
Erreur 500 après réecriture URL URL Rewriting et .htaccess 30 Décembre 2014
Réécriture d'urls et fichiers .pdf URL Rewriting et .htaccess 17 Décembre 2014