Url Rewriting leprodelacuisine.com Une bouée svp !!!

WRInaute occasionnel
Bonjour à tous,
J'ai lu attentivement le dossier très bien sur l'url rewriting.
J'ai vérifié grâce au modèle .htaccess de webrank à vérifier que mon hébergeur supportait l'url rewriting, ce qui est le cas.

Mon site est un site dynamique basé sur le portail artiphp : je n'arrive pas à configurer le .htaccess de tel sorte à ce que les longs paramètres comme :
Code:
http://www.leprodelacuisine.com/dossiers/index.php?id_dossier=76&cat=51&nomcat=La Réunion&sscat=&nomsscat=
soit du genre :
Code:
http://www.leprodelacuisine.com/reunion/crevettemangues.html
Avez vous des astuces pour m'aider s'il vous plait.
Je vous remercie d'avance et bravo au webmaster !!
Xavier Paymal
webmaster http://www.leprodelacuisine.com
 
WRInaute accro
Code:
RewriteEngine on 
RewriteRule ^crevettemangues-([0-9]*)-([0-9]*).htm http://www.leprodelacuisine.com/dossiers/index.php?id_dossier=$1&cat=$2&nomcat=La Réunion&sscat=&nomsscat=

et pour appeler ta page
-http://www.leprodelacuisine.com/crevettemangues-76-51.htm
 
WRInaute occasionnel
Merci !!!!!!
Mais vu que j'utilise un site dynamique et que chaque recette ajoutée est enregistré dans mysql, je vais pas rajouter ce code 172 fois ??
Comment faire ?
Merci encore d'avance
Xavier
 
WRInaute accro
pourquoi 172 fois ? 1 seule fois suffit, dans la page php ou tu générais précédemment tes liens de la forme
Code:
http://www.leprodelacuisine.com/dossiers/index.php?id_dossier=$1&cat=$2&nomcat=La Réunion&sscat=&nomsscat=

t'as plus qu'a transformer avec la nouvelle ecriture et voila.
 
Nouveau WRInaute
renseignements complémentaires demandés

Bonjour,

je lis ce post avec bcp d'intérêt puisque j'utilise aussi le CMS artiphp et, moi aussi, je souhaite réécrire les url dans une forme convenable, et pas seulement pour google.
Je voudrais qu'on m'apporte quelques compléments d'information sur les points suivants (certains ont été proposés par mahefarivony mais je n'ai pas tout suivi).

On partira de ce code comme exemple :
Code:
http://www.leprodelacuisine.com/dossiers/index.php?id_dossier=$1&cat=$2&nomcat=La Réunion&sscat=&nomsscat=

Mahefarivony (quel nom lol!) propose ceci :
RewriteEngine on
RewriteRule ^crevettemangues-([0-9]*)-([0-9]*).htm http://www.leprodelacuisine.com/dossier ... &nomcat=La Réunion&sscat=&nomsscat=

Bon, je me lance...
*A mon avis il y a un problème avec le choix de l'exemple : s'il faut taper à la main dans la formule de rewrite l'intitulé de la catégorie c trop long (je parle de "crevettemangue" (intéressant comme recette :)-).
*Ensuite faut impérativement intégrer dans la génération de l'url le nom des cats et sous cats (les variables $1 $2 etc doivent être complétées n'est ce pas ? Ce qui doit donner quelque chose de cet ordre, dites moi si je me trompe :)
RewriteRule ^-([0-9]*)-([0-9]*)-([a-zA-Z0-9]*).htm$ http://www.leprodelacuisine.com/dossier ... &nomsscat=
ce qui donne ..../76-51-la réunion
*Enfin il faut réécrire le code php du cms qui génère les liens pour les mettre dans la forme voulue ; à ce propos, voilà la GROS problème : ils ne sont pas dans le code source sous la forme espérée ; ce n'est pas
Code:
http://www.leprodelacuisine.com/dossiers/index.php?id_dossier=$1&cat=$2&nomcat=La Réunion&sscat=&nomsscat=
qu'il va falloir chercher mais quelque chose de chiant (pour moi) du genre :
Code:
$listedernier .= "<tr class=\"titre\"><td><a href=\"../dossiers/index.php?id_dossier=".$dernier->id_dossier."&cat=$cat&nomcat=$nomcat&sscat=$sscat&nomsscat=$nomsscat\" class=\"titredos\">".$dernier->titreDossier."</a> <font class=\"datedos\">[" .$dernier->dateDosvis."]</font></td></tr>\n";

d'où ma question : comment on fait pour réécrire ce dernier code (c'est le source) pour qu'il produise l'écriture url voulue ? Ca je ne sais pas du tout ? Et d'abord, quel est ce type de code en php ? en général les variables apparaissent précédés de & alors que là dans ce code il n'y en a pas (mais le lien qu'il génère comporte des varaibles précédées de &).


J'ajoute que je ne comprends pas la réponse de Mahefarivony qui suggère ceci :

Code:
RewriteEngine on
RewriteRule ^crevettemangues-([0-9]*)-([0-9]*).htm http://www.leprodelacuisine.com/dossier ... &nomcat=La Réunion&sscat=&nomsscat=
1/ pourquoi url absolue ?
2/ pourquoi pas de slash devant les points

Je sens que j'ai été compliqué et chiant ; toutes mes excuses :)
Plein de choses à apprendre, merci de partager votre savoir
Quand j'aurai progressé je serai plus clair sans doute, mais je nage.
Mille merci pour votre aide, bonne continuation ; très bonne idée cette rubrique de forum, j'espère qu'elle (me) servira
A bientôt
Gilles
 
WRInaute occasionnel
Bon toi aussi tu peines ? lol
Voici ce que maetfavoury a eu la gentillesse de me proposer en privé :
Code:
Le but de l'Url rewriting, c'est de dégager sur tes pages toutes les liens en .php pour n'avoir que des .htm (ou .html) 


prenons ta page d'accueil http://www.leprodelacuisine.com/ (bon deja y a une grosse redirection avec un truc welcome mais ca c'est un autre débat) 

dans ton bloc a gauche, tu as tes catégories. Fort bien... L'idée c'est d'avoir par exemple pour aller vers le Mexique un lien du genre 
http://www.leprodelacuisine.com/categorie-48.htm 

au passage, ton portail passe une chaine de caractere "Le Mexique" en variable, c'est pas terrible. Il faudrait que tu t'arranges pour que le numéro de catégorie suffise a retrouver tes petits, dans ta page index.php tu as 2 solutions : 

1 - faire une switch (cat) : case 48 alors "Le Mexique" : case 49 alors "La Chine" etc.. 
2 - plus elegant, faire une table de reference : select libelle from categorie where num=49 et recuperer ainsi le libelle 


Fermons la parenthese et revenons a nos moutons  
On veut donc que http://www.leprodelacuisine.com/categorie-48.htm aille sur http://www.leprodelacuisine.com/dossiers/index.php?cat=48 

(j'ai volontairement éliminé la varibal nomcat, a toi de la gérer autrement comme indiqué precedemment. Au passage tu peux remarquer que http://www.leprodelacuisine.com/dossiers/index.php?cat=48 marche, il n'y a que le libellé mexique qui manque. 

dans ton .htaccess tu mets donc 
RewriteEngine on 
RewriteRule ^categorie-([0-9]*).htm http://www.leprodelacuisine.com/dossiers/index.php?cat=$1 

Traduction ? 
"Quand j'appelle la page categorie-XX.htm ca appelle en fait http://www.leprodelacuisine.com/dossiers/index.php?cat=XX 

XX = 48 c bon  

une fois que tu as ecrit ton .htaccess et mis sur le serveur, tu peux maintenant tout de suite tester 

http://www.leprodelacuisine.com/categorie-48.htm 

et la o joie tu atteris bien sur la bonne page. 

Pour en revenir a ta page d'accueil, tu transformes donc dans ton bloc le lien vers le mexique en http://www.leprodelacuisine.com/categorie-48.htm . Comme c'est un portail php, tu mets le nez dans le bloc "categorie" et tu regardes comment ca marche pour transformer l'ancien lien en la nouvelle. 

Normalement, tout est géré avec une seule boucle dans ta page php, tu devrais avoir une seule ligne a modifier pour que tous les liens de ton bloc soient transformés (la reunion, la cuisine, etc)
Maintenant est ce que c'est applicable à notre cms je sais pas.
Je pense que l'on va y arriver grâce à une équipe d'enfer ici.
Xavier
 
WRInaute occasionnel
Rebonjour,
mahefarivony en fait mes catégories (mexique...) sont bien indexé mais google n'arrive pas à indexer recettes par recettes :( puisqu'il y a plus de paramètres.
Code:
RewriteEngine on 
RewriteRule ^categorie-([0-9]*).htm http://www.leprodelacuisine.com/dossiers/index.php?cat=$1
Je ne sais pas où le mettre sur le serveur le .htaccess :(
Dans le répertoire dossiers il ya juste les pages menudossiers et liens dossiers voici le contenu de menudossiers
Code:
$menudos="<table width=\"100%\">";

  $requete="select nomCategorie, id_categorie, id_parentcat from ".$extension."categorie where id_parentcat='0'";
  $result=mysql_query($requete, $link);

  while ($liendossier=mysql_fetch_object($result)) {

    $menudos .= "<tr class=\"menutitre\"><td><a href=\"../dossiers/index.php?cat=".$liendossier->id_categorie."&nomcat=".$liendossier->nomCategorie."\"  class=\"m\"><b>".$liendossier->nomCategorie."</b></a></td></tr>\n";
    $menudos .= "</tr></td>";
  }

  $menudos .="</table>";
Voila si quelqu'un a une idée se serait sympa :)
Xav'
 
Discussions similaires
Haut