Mon premier URL rewriting
13 messages • Page 1 sur 1
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
Mon premier URL rewriting
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
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
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
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
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
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
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
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
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 ?
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 ?
Petite question :noisequik a écrit:si je mets objet-crayon-gris_1.html cela ne fonctionne pas.
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.
- ChezThierry
- WRInaute impliqué

- Messages: 273
- Inscription: Ven Oct 21, 2005 13:33
une regexp est gourmande par défaut, ça veut dire que
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
si plusieurs scripts, mettre la liste :
(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 :
(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...
- 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.
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 ??
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 ??
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...
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...
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
-

LeParrain735 - WRInaute occasionnel

- Messages: 144
- Inscription: Sam Fév 11, 2006 14:22
Interessant le <base href>
...
...
13 messages • Page 1 sur 1
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 :
- Tutoriel URL Rewriting
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- l'URL Rewriting expliqué aux débutants
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Le référencement de pages PHP
- Design de WRI version 3
- L'URL Rewriting expliqué aux débutants
- Référencement : le problème des sessions des pages PHP
- Aperçu des différents types de redirection
- 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


le forum