url rewriting et mot clé

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

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

url rewriting et mot clé

Message le Mer Mar 08, 2006 23:43

Bonjour.

Voici mon problême et mes 3 questions,

J'ai un site avec des articles dont le rewriting ce fait avec le titre de l'article afin d'avoir mondomaine.com/le-titre-de-mon-article.html. Comme il est recommandé d'utiliser le "-" comme séparateur au lieu de "_" pour les moteurs et les mots clés c'est ce que j'ai fait. Mais un problême ce pose avec 2 articles qui ont le même titre. J'ai donc ajouté une variable id dans mon rewriting.

Maintenant c'est ici que j'ai besoin d'aide, dans ma règle, j'indique "-" pour séparer mes 2 variables mais je crois que le serveur est confu puisque dans la première variable (mon titre) j'ai plusieurs "-". J'obtients donc un erreur. Est-ce qu'il existe un moyen d'avoir comme url mondomaine.com/le-titre-de-mon-article-id?

À mon avis la réponse est non mais je suis pas un pro du rewriting. Donc si c'est vraiment non, j'ai pour l'instant résolu en séparant mes variables avec le "_" puisque de toute façon le id n'est pas un mot clé. Mais voici ma 2ième question, par exemble si j'ai un titre qui est Tournoi-de-Golf le mot golf est un important mot clé mais la j'obtiens mondomaine.com/Tournoi-de-Golf_34, est-ce que les moteurs liront quand même le mot clé Golf ou si pour eux le mot est Golf_34?

L'idéal serait de pouvoir garder mon url sans le _id, est-ce qu'il aurait un moyen de faire cela tout en passant ma variable id pour éviter le problême de 2 articles avec le même titres?

Mon .htaccess:
Code: Tout sélectionner
RewriteRule ^([^_]*)_([^_]*)\.php$  /article.php?url=$1&id_article=$2  [L]


Question bonus Lol, est-ce que c'est préférable de changer l'extension en .html ou je peux très bien garder le .php
Merci!
Dernière édition par isolu le Ven Mar 31, 2006 23:35, édité 1 fois.

smrhp
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 191
Inscription: Mer Aoû 03, 2005 12:46

Message le Sam Mar 11, 2006 20:47

quelques pistes :

- utilise la "," comme séparateur pour ton id (si tu ne l'utilise pas ailleurs)
- ou ajoute simplement à la fin de ton en ?id=xx en gardant le transfert des query_string (via l'option QSA en fin de ligne de rewriting) ex:
Code: Tout sélectionner
RewriteRule source cible [QSA]


ainsi ton ?id= sera conservé de l'url xxx-xxx-xxx.html?id=xx vers pagephp.php?p1=xxx&p2=xxx&p3=xxx&id=xx

voiloù

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Dim Mar 12, 2006 13:25

Ou, tu peux noter que si "-" ne peut être utilisé comme séparateur pour l'id, et que "_" le peut, alors tu peux ajouter ce que tu veux, genre "-id" (tu aurais des url du type : titre-de-la-page-idXX.html)

Mais c'est avant tout une histoire d'ésthétique, le "_" le fait, si tu est certain qu'il ne risque pas d'apparaitre ailleurs.

++

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Dim Mar 12, 2006 17:39

Merci à tous!

Vous avez effectivement résolu mon problême, mais finalement j'ai changé le tout. Puisque mon but était d'éliminer le id dans mon URL afin d'avoir juste mes mots clés, j'ai donc décidé d'interdire d'avoir 2 articles avec le même titre. C'est un peu plus de travail puisque je dois d'abord vérifier si le titre existe mais je crois que c'est beaucoup mieux comme ça.

À mon avis c'est plus facile de ce souvenir d'une adresse avec juste le titre sans avoir à ce souvenir du id.
Dernière édition par isolu le Mar Mar 14, 2006 2:14, édité 1 fois.

smrhp
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 191
Inscription: Mer Aoû 03, 2005 12:46

Message le Dim Mar 12, 2006 17:46

ah en effet, ça parait être la règle la plus sage ;) !!

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Dim Mar 12, 2006 18:55

jusqu'au 10 000 ième article ;)

Après, cela risque de se sentir un peut les match string dans la db. Surtout que sans id, pas vraiment d'orde j'imagine, pas alphabetique du moins.

A peser je dirais, car si tu en arrive là, et qu'il te faut ajouter une id pour faire face, tu te retrouvera avec 100% de duplicates.

++

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Lun Mar 13, 2006 21:53

J'ai effectivement un id dans la bd que j'utilise pour la recherche, tout les articles trouvé ont un lien " titre-de-article.php " qui pointe sur article.php?url=$url.

J'ai maintenant un drole de problème avec mon RewriteRule.

Voici ce que j'ai :
Code: Tout sélectionner
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.articlesgratuits.com$
RewriteRule (.*) http://www.articlesgratuits.com/$1 [QSA,L,R=301]
RewriteRule ^category-([^/]*)\.php$  /en/category.php?category_url=$1 [L]
RewriteRule ^([^/]*)\.php$  /en/article.php?url=$1 [L]


Le dernier RewriteRule fonctionne pas j'obtiens un erreur serveur 500, mais si je change
Code: Tout sélectionner
^category-([^/]*)\.php$
pour
Code: Tout sélectionner
^category-([^/]*)\.html$
ça fonctionne. Mais moi je veux conserver mon .php.

Est-ce que vous voyez ou est mon erreur?
J'ai utilisé ce site pour généré le RewriteRule http://www.mod-rewrite-wizard.com/

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Lun Mar 13, 2006 23:11

Ton problem est difficilement soluble à mon avis, comment rediriger *.php vers script.php sans que sa tourne en boucle?

C'est toute l'utilité du terme séparateur, si tu utilises "-id", encore un problème que tu n'aura pas, car la rewriterule se basera sur -id(0-9+)\.php

Après ily a peut être moyen en ajoutant une rewritecond, genre
Code: Tout sélectionner
RewriteCond %{REQUEST_URI} !^(.*)category\.php(.*)$


Et pareil pour tous tes script php du coup, il faut tous les sortir, et aussi, pas de titres se finissant par leur nom ;)

Mais encore une fois je penche pour un bon vieux séparateur et une bonne vielle id.

C'est pas vraiment ça qui va changer ton PR.

++

smrhp
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 191
Inscription: Mer Aoû 03, 2005 12:46

Message le Mar Mar 14, 2006 0:02

dcz a écrit:Ton problem est difficilement soluble à mon avis, comment rediriger *.php vers script.php sans que sa tourne en boucle?


j'ai cru aussi qu'il tournerait en boucle, mais en fait il redirige vers "/en/****" et son redirect impose que l'url "commence" par category donc ça doit pas poser de problèmes ;)

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Mar Mar 14, 2006 0:04

en même temps on dirait que si ;)

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Mar Mar 14, 2006 1:22

Oups j'ai fait une petite erreur.

C'est la dernière ligne qui fonctionne pas. le dernier rewriterule.

Code: Tout sélectionner
RewriteRule ^([^/]*)\.php$  /en/article.php?url=$1 [L]


Donc si je mets un .html c'est ok mais il n'aime pas le .php. Ça fonctionne même avec un .ph, .p .n'importe quoi mais pas .php. Et en effet si je me mets un séparateur et une 2ième variable comme un id, ça fonctionne. Je peux effectivement remettre mon id en place mais j'aimerais éviter le id, c'est pas vraiment pour le PR mais plus pour offrire aux visiteurs une URL plus facile à retenir.

Si j'ai pas le choix, bien je vais remettre le bon vieux id comme dcz dit si bien.
Dernière édition par isolu le Mar Mar 14, 2006 2:13, édité 1 fois.

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Mar Mar 14, 2006 2:09

Je viens de faire de nouveaux tests.

Étant donné que mon premier RewriteRule fonctionne j'ai testé avec
Code: Tout sélectionner
RewriteRule ^article-([^/]*)\.php$  /en/article.php?url=$1 [L]


Et ça fonctionne, peut importe ce que je met comme séparateur sa fonctionne même juste un "-". Mais si je le laisse vide ça fonctionne pas.

j'obtients donc une adresse du genre -www.articlesgratuits.com/en/article-Le-Titre-de-larticle.php. J'ai donc 2 choix qui fonctionne et j'hésite quelle choisir. 1- Je mets le "article-" au début de mon titre ou 2- je me le "id" à la fin.

Je suis certain que dcz dira le #2 :wink:

Mais je comprends toujours pas pourquoi je peux pas avoir un RewriteRule sans séparateur pour une adresse du genre /en/Le-Titre-de-larticle.php

Haaaa! que c'est compliqué le URL Rewriting et .htaccess.
:cry:

dcz
WRInaute passionné
WRInaute passionné
 
Messages: 722
Inscription: Mer Mar 02, 2005 2:04

Message le Mar Mar 14, 2006 14:34

T'as raison, mais comme tu as peut de chances d'avoir un article dont l'url finirait par "-.php" ou commencerait par "-", ça peut aussi marcher, mais d'un coup, là je trouve ça carrement moins joli que "-idXX.php" sans parler d'éfficacité au 10 000 ème article ;)


Et pourquoi tu mettrais pas html tout simplement si tu tiens tellement à ne pas avoir d'id?
Une bonne vielle rewriterule devrait le faire pour rediriger en 301 php$ vers html

++

isolu
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Lun Nov 21, 2005 20:52

Message le Mar Mar 14, 2006 21:30

Je suis d'accord avec toi, j'aime bien le -idxx.php mais ça fonctionne pas. Je crois que je peux pas mettre de "-" dans mon séparateur parce que j'ai déja des "-" dans mon url. J'ai donc opté pour le "_". Pour le .html bien puisque toutes mes pages sont en .php je préfère garder le .php.

Code: Tout sélectionner
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.articlesgratuits.com$
RewriteRule (.*) http://www.articlesgratuits.com/$1 [QSA,L,R=301]
RewriteRule ^category-([^/]*)\.php$  /en/category.php?category_url=$1 [L]
RewriteRule ^([^_]*)_([^_]*)\.php$ /en/article.php?url=$1&id_article=$2 [L]


Si je mets
Code: Tout sélectionner
RewriteRule ^([^-id]*)-id([^-id]*)\.php$ /en/article.php?url=$1&id_article=$2
ça fonctionne pas.

Donc maintenant que avec le "_" tout fonctionne, j'ai créé mon sous domaine "en" pour la version anglaise -www.en.articlesgratuits.com et devinez quoi? ça fonctionne plus, pourtant mon .htaccess est dans le répertoire "en" avec comme path /en/category.php?category_url=$1

J'ai fait une recherche et je suis tombé sur ce poste qui semble avoir le même problême mais je comprends pas la solution. Est-ce que quelqu'un peut m'expliquer s.v.p.

Une fois ceci réglé je crois que je vais finallement pouvoir vous laisser tranquille et offciellement lancer mon site web. Et pour tous vous remercier je vous payes une tournée de bière!! :lol:

smrhp
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 191
Inscription: Mer Aoû 03, 2005 12:46

Message le Mar Mar 14, 2006 23:08

le "-" surtout entre crochet c'est un caractère spécial qu'il doit falloir "échapper" d'une manière ou d'une autre je pense... Avec un "\"... à essayer...

url rewriting et mot clé

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 :

Consultez la description détaillée des produits ou services de Google suivants : Google Bombing

  • Analyseur de densité
    Cet outil vous permet de calculer l'indice de densité d'un mot-clé d'une page web. Il est calculé à la fois pour la balise TITLE, la balise META description et l'ensemble du texte de la page.
  • Suggestion de mots
    Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.
  • Suggestion de mots Google
    Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez.


Qui est en ligne

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