Mon premier URL rewriting

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

noisequik
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Oct 05, 2004 13:33

Mon premier URL rewriting

Message le Lun Mar 27, 2006 8:15

Bonjour,

je viens d'effectuer mon premier url rewriting tout simple.

objet.php?id=1

devient

objet_1.html

maintenant j'aimerais aller plus loin et remplacer le numéro automatique par le titre de l'objet par exemple :

objet_crayon.html

Faut-il pour cela envoyer ce nom dans le liens ou est-ce qu'on peut créer une règle pour aller chercher dans la base le nom associé a ce numéro ?

Merci d'avance

edit : le but est d'avoir une url comme ceci par exemple :
http://forum.hardware.fr/hardwarefr/Min ... 2149-1.htm

philg
Nouveau WRInaute
 
Messages: 3
Inscription: Lun Mar 27, 2006 8:12

Message le Lun Mar 27, 2006 8:30

En nommant tes pages avec le format objet_nomObjet.html tu indiques que nomObjet est l'identifiant unique de ton objet.
Si tu as un seul objet crayon, stylo, pinceau, ta règle fonctionnera.

Mais un tel nommage est limité, il serait plus judicieux de créer une règle de rewriting te permettant d'avoir des pages au format objet-nomObjet_IdObjet.html.

Phil

noisequik
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Oct 05, 2004 13:33

Message le Lun Mar 27, 2006 9:00

ok je vais faire comme tu dis, donc mon url normal serait

objet.php?nomobjet=crayon&id=1

et mon url rewrité serait

objet_crayon_1.html

par contre dans mes liens le fait que je marque n'importe quel nom ne changera rien, si je comprends bien ??

la page objet_crayon_1.html sera identique a objet_toto_1.html

philg
Nouveau WRInaute
 
Messages: 3
Inscription: Lun Mar 27, 2006 8:12

Message le Lun Mar 27, 2006 9:23

Oui la règle fonctionnera quelque soit le type de l'objet (crayon, toto) vu que c'est l'id qui identifie de façon unique ton objet.

A toi donc d'écrire dynamiquement ton url en mettant le bon type d'objet. Car c'est bien là le but du rewritting, identifier clairement le contenu de la page pour rendre plus pertinente son indexation ;)

noisequik
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Oct 05, 2004 13:33

Message le Lun Mar 27, 2006 9:59

Merci,

il me reste un petit souci avec ma règle.

je l'ai écrite comme ceci

RewriteRule ^(.*)-(.*)_(.*).html$ $1.php?nomobjet=$2&id=$3 [L]

si je mets objet-crayon_1.html cela fonctionne

si je mets objet-crayon-gris_1.html cela ne fonctionne pas.

je ne suis pas encore assez familier avec les expressions régulières pour trouver l'erreur, quelqu'un pourrait-il m'aider à corriger ?

edit : pour finir je vais faire un url du genre www.monsite.com/objet/1/crayon
ça me paraît une bonne solution, qu'en pensez-vous ? :wink:


cardoule
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 233
Inscription: Jeu Fév 19, 2004 16:24

Message le Mer Mar 29, 2006 16:00

noisequik a écrit:si je mets objet-crayon-gris_1.html cela ne fonctionne pas.
Petite question :
dans ce cas, quelle est la valeur de la variable "nomobjet"(crayon, gris ou crayon-gris) ?
essaye également de visualiser la valeur prise par $1, au besoin en créant une nouvelle page avec de nouvelles vars
Dernière édition par cardoule le Mer Mar 29, 2006 16:03, édité 1 fois.

noisequik
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Oct 05, 2004 13:33

Message le Mer Mar 29, 2006 16:03

crayon-gris :)


cardoule
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 233
Inscription: Jeu Fév 19, 2004 16:24

Message le Mer Mar 29, 2006 16:09

donc c'est bien le résultat attendu.
par contre si cela ne marche pas, c'est que $1 pourrait bien être objet-crayon, no ? :wink:

ChezThierry
WRInaute impliqué
WRInaute impliqué
 
Messages: 273
Inscription: Ven Oct 21, 2005 13:33

Message le Mer Mar 29, 2006 16:12

une regexp est gourmande par défaut, ça veut dire que
Code: Tout sélectionner
RewriteRule ^(.*)-(.*)_(.*).html$ $1.php?nomobjet=$2&id=$3 [L]


la regexp va mettre tout ce qu'elle peut dans la 1ere variable, tant que la règle est valide.
dans le cas de
objet-crayon-gris_1
ça donne
(objet-crayon)-(gris)-1 et donc ton objet a pour nom gris et il va appeller le script objet-crayon.php

plusieurs façon d'éviter ça :
mettre le nom du script en clair dans la règle
Code: Tout sélectionner
RewriteRule ^objet-(.*)_(.*).html$ objet.php?nomobjet=$1&id=$2 [L]


si plusieurs scripts, mettre la liste :
Code: Tout sélectionner
RewriteRule ^(objet|article|question)-(.*)_(.*).html$ $1.php?nomobjet=$2&id=$3 [L]

(marchera pour les scripts objet.php, article.php et question.php

Si aucun script ne contient de signe '-' dans son nom, la solution la plus simple serait de virer ce caractère de ceux autorisés dans la 1ere parenthèse :
Code: Tout sélectionner
RewriteRule ^([^-]+)-(.+)_(\d+)\.html$ $1.php?nomobjet=$2&id=$3 [L]

(là j'ai remplacé aussi .html par \.html, .* par .+, et la dernière variable par \d+, ce sont des choix personnel, pas la peine d'autoriser .* quand on sait qu'on aura toujours au moins un caractère par exemple, ni .* alors qu'on veut forcément des chiffres).

Avec les regexp, en règle générale, il vaut mieux essayer d'être le plus spécifique possible pour éviter les surprises comme ton crayon-gris.

Edit: j'avais oublié de modifier le numéro des variables $1, $2, $3 dans certaines règles...
Dernière édition par ChezThierry le Mer Mar 29, 2006 21:31, édité 1 fois.

noisequik
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Oct 05, 2004 13:33

Message le Mer Mar 29, 2006 16:17

ok merci je vais étudier ces règles en détail...

Je pense pour le moment rester à mon shéma :

www.monsite.com/objet/1/crayon

quoique j'hésite aussi avec

ww.monsite.com/objet/crayon-1.htm


le .htm en fin est-il conseillé ? faut-il limiter le nombre de répertoires virtuels ??


cardoule
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 233
Inscription: Jeu Fév 19, 2004 16:24

Message le Mer Mar 29, 2006 16:41

Excellente et fort détaillée réponse de Chez Thierry :)
Personnellement pour htm je dirais que cela découle d'un choix personnel, mais peut-être vaudrait-il mieux prendre l'avis des experts en la matière.
Je ne crois pas qu'il y ait une limitation au nombre de dossiers virtuels, par contre plus leur nombre sera grand, plus les erreurs d'adressage interne seront faciles à générer.
dans ton ex, si on a : img src='crayon.gif'
je crois bien que le navigateur va aller chercher l'image là :
objet/1/crayon/crayon.gif
mais comme je n'ai encore jamais utilisé de dossiers virtuels, je suis pas sûr...

noisequik
Nouveau WRInaute
 
Messages: 19
Inscription: Mar Oct 05, 2004 13:33

Message le Mer Mar 29, 2006 16:51

cardoule a écrit:Je ne crois pas qu'il y ait une limitation au nombre de dossiers virtuels, par contre plus leur nombre sera grand, plus les erreurs d'adressage interne seront faciles à générer.
dans ton ex, si on a : img src='crayon.gif'
je crois bien que le navigateur va aller chercher l'image là :
objet/1/crayon/crayon.gif
mais comme je n'ai encore jamais utilisé de dossiers virtuels, je suis pas sûr...


Ce n'est heureusement pas un problème grace à l'utilisation de
<base href="http://www.monsite.com/" />

par exemple 8)


LeParrain735
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 144
Inscription: Sam Fév 11, 2006 14:22

Message le Ven Mar 31, 2006 3:26

Interessant le <base href>
... :idea:


Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. 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 :

  • Calcul du nombre de backlinks
    Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
  • Transformer des citations en liens
    Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).


Qui est en ligne

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