[résolu] tirets dans url rewriting ???

Règles du forum
Attention ce forum est destiné avant tout à ceux qui découvrent le référencement. Les membres qui auront l'amabilité de répondre à leurs questions sont priés de rester courtois, polis, indulgents, patients et pédagogues... Merci d'avance !

Par ailleurs, inutile d'utiliser ce forum uniquement pour obtenir des liens vers vos sites, les liens sont désactivés pour le référencement (nofollow).

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics


guigui48
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 14 Fév 2010

[résolu] tirets dans url rewriting ???

Message le Sam Juin 05, 2010 19:58

Bonjour à tous

Je continue mon petit site, et j'ai un petit souci concernant l'url rewriting :|

Explication :

j'ai fait une table famille_produit et une table produit

Pour faire simple :

FAMILLE_PRODUIT
idfamille
nom

PRODUIT
idproduit
idfamilleproduit
reference


Pour eviter les URL du genre cadeauenfant.php?id=4, je veux faire de l'url rewriting

Imaginons que j'ai une famille de produits "sac à dos" (id=4)

J'aimerai avoir l'adresse suivante : cadeau-enfant-sac-a-dos-4.php

Pour cela j'ai fait le code suivant :

Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule cadeau-enfant-([0-9]+)-(.+)\.html$   /cadeau-enfant.php?id=$1 [L]



Je précise que j'ai créé un script permettant d'enlever les accents et d'ajouter des tirets à la place des espaces au sein de mon menu php

Est-ce que ce sont les tirets qui posent probleme ????
Merci de me répondre, en vous souhaitant un bon week-end :wink:


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

Re: tirets dans url rewriting ???

Message le Sam Juin 05, 2010 20:20

salut,

teste ca:
RewriteRule ^cadeau-enfant-([a-zA-Z0-9]+)\.html$ /cadeau-enfant.php?id=$1 [L]

Mais j'ai un doute sur ton url. A mon avis, il faut deux variables (l'id et le nom)

Je pense que ton url est mauvaise:
ca doit etre
cadeau-enfant.php?id=variable1&nom=variable2

avec une url comme ça tu pourrais faire de l'ur cadeau-enfant-sac-a-dos-4.html


guigui48
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 14 Fév 2010

Re: tirets dans url rewriting ???

Message le Dim Juin 06, 2010 12:39

Bonjour et merci pour ta réponse !

Mais cela ne fonctionne pas ! :cry:

En gros, imagine dans mon menu, je souhaite que

cadeau-enfant-sac-a-dos-4.html
amene à cadeau-enfant.php?id=4

ou que cadeau-enfant-poupee-6.html mène à cadeau-enfant.php?id=6


J'ai aussi essayé de la façon suivante :

Code: Tout sélectionner
RewriteRule ^cadeau-enfant-([a-zA-Z0-9]+)-([0-9]+)\.html$ /cadeau-enfant.php?ref=$1&id=$2 [L]


en admettant que ref=$1 ne sert à rien !!!

cela non plus ne fonctionne malheureusement pas

J'ai aussi essayé de pointer sur cadeau-enfant-sac_a_dos-4.html, cela ne marche pas non plus (en modifiant les - par des _)

Merci de votre aide !!!!


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

Re: tirets dans url rewriting ???

Message le Dim Juin 06, 2010 12:50

salut,

a mon avis comme j'ai dis plus haut, t'as un soucis dans ton url.
Ta variable id ne peut pas en même temps renvoyer vers un chiffre (ici le 4) et un termes (sac à dos).

Exemple
cadeau-enfant-sac-a-dos-4.html amene à cadeau-enfant.php?id=4
2 variables dans la première url alors qu'il n'y a qu'une dans la seconde.


guigui48
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 14 Fév 2010

Re: tirets dans url rewriting ???

Message le Dim Juin 06, 2010 13:39

vitalizo a écrit:salut,

a mon avis comme j'ai dis plus haut, t'as un soucis dans ton url.
Ta variable id ne peut pas en même temps renvoyer vers un chiffre (ici le 4) et un termes (sac à dos).

Exemple
cadeau-enfant-sac-a-dos-4.html amene à cadeau-enfant.php?id=4
2 variables dans la première url alors qu'il n'y a qu'une dans la seconde.

En effet, après avoir un peu réfléchi et t'avoir lu, j'ai fait de la façon suivante :

RewriteRule ^cadeau-enfant-([a-zA-Z0-9]+)-([0-9]+)\.html$ /cadeau-enfant.php?ref=$1&id=$2 [L]

mais meêm comme ça, cela ne fonctionne pas :?


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

Re: tirets dans url rewriting ???

Message le Dim Juin 06, 2010 16:42

ben je vois pas le soucis, la règle fonctionne chez moi


guigui48
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 14 Fév 2010

Re: tirets dans url rewriting ???

Message le Dim Juin 06, 2010 17:32

Super, ça marche enfin, merci de ton aide !


Mais j'ai encore un bug :

Si je pointe là dessus : cadeau-enfant-sac-1.html, ça marche sans probleme

Par contre si je pointe sur cadeau-enfant-sac-a-dos-1.html ou sur cadeau-enfant-sac_a_dos-1.html, ça ne marche plus !!!

J'en reviens donc à la question : Les tiretsd ou underscores peuvent ils poser problème ? Que me conseillez vous comme séparateur de chaines de caractères ?

Je pensais au / mais n'y a t'il pas de risques de problèmes 404 au niveau des arboresecences (par exemple, il va chercher le fichier 1.html dans les dossier sac, situé lui meme dans le dossier a, etc.... mais ces dossiers n'existent pas)


vitalizo
WRInaute passionné
WRInaute passionné
 
Messages: 1086
Inscription: 27 Nov 2005

Re: tirets dans url rewriting ???

Message le Dim Juin 06, 2010 18:12

non les tirets ne posent pas de pb (les underscore oui il me semble).
Pour ton pb, ca doit venir de ton script php qui remplace les espaces en tirets ( vu qu'il ne prend que sac dans l'ur)


guigui48
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 14 Fév 2010

Re: tirets dans url rewriting ???

Message le Lun Juin 07, 2010 6:36

Rebonjour, et merci de porter attention à mon probleme
Cependant, je pense que j'ai du mal m'expliquer, de ce fait, je vais te copier/coller le sql de la table et le script

Code: Tout sélectionner
CREATE TABLE IF NOT EXISTS `familleproduit` (
  `id` int(11) NOT NULL auto_increment,
  `nomproduit` varchar(255) NOT NULL,
  `nompage` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

INSERT INTO `familleproduit` (`id`, `nomproduit`, `nompage`) VALUES
(1, 'Sac à dos',  'sac-a-dos'),
(2, 'Sacs', 'sacs');

Là dedans, le champ nompage est la variable que j'utilise pour l'url rewriting (j'ai préféré passer par ce moyen là via un panneau admin plutot que générer un script de remplacement de caractères

En gros, je dois donc générer deux pages:
cadeau-enfant-sac-a-dos-1.html qui pointe sur cadeau-enfant.php?id=1
et
cadeau-enfant-sac-2.html qui pointe sur cadeau-enfant.php?id=2

Pour cela, voici le script utilisé pour mon menu :
Code: Tout sélectionner
   
$chercheartenfant = mysql_query("select* from familleproduit order by nomproduit asc");

while ($reqart = mysql_fetch_object($chercheartenfant))
      {

echo "<p><a href=\"cadeau-enfant-$reqart->nompage-$reqart->id.html\">$reqart->nomproduit</a></p>";
      }

Probleme :

ca marche pour la famille sac, et non pour la famille sac à dos, certainement à cause des tirets


Voici le htaccess (je précise que les rewrite sont prises en compte par mon serveur)
Code: Tout sélectionner
RewriteRule ^cadeau-enfant-([a-zA-Z0-9]+)-([0-9]+)\.html$ /cadeau-enfant.php?ref=$1&id=$2 [L]

Dans ce htacess, la variale ref est facultative car non interprétée par mon code php


guigui48
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 13
Inscription: 14 Fév 2010

Re: tirets dans url rewriting ???

Message le Lun Juin 07, 2010 6:50

Ca y est !!!!

j'ai trouvé !
Je le mets si ça peut aider quelqu'un un jour :
en fait, il fallait simplement remplacer ([a-zA-Z0-9]+) par (.+) pour qu'il puisse prendre en compte tous les caractères

Merci de votre aide en tout cas et bon dev !


PS : par contre je n'arrive pas à éditer afin de mettre RESOLU


OTP
Modérateur
Modérateur
 
Messages: 19532
Inscription: 16 Déc 2005

Re: tirets dans url rewriting ???

Message le Lun Juin 07, 2010 6:56

guigui48 a écrit:PS : par contre je n'arrive pas à éditer afin de mettre RESOLU


C'est fait (la fonction n'existe pas encore).


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités