rewriting de top recherches

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

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

rewriting de top recherches

Message le Ven Déc 31, 2004 15:57

BOnjour,
dans mon annuaire, j'ai ajouté une fonction Top recherche pour savoir ce que recherchent en premier lieu les internautes sur mon site. cette pages est accessible ici : http://www.ateliermagique.com/annuaire/ ... erches.php

j'ai écrit sous forme de lien chacun des mots les plus recherchés afin que les gens puissent aussi voir les résultats. pour cela, j'ai utilisé la page search.php de mon annuaire PHPMYANNU à laquelle je passe le mot en paramètre, ce qui me donne une URL du type :

http://www.ateliermagique.com/annuaire/ ... n%20cheval

j'aimerais transfomé cet url en quelque chose du genre :
http://www.ateliermagique.com/annuaire/ ... heval.html

comment faire ? j'essaie depuis deux jours à l'aide de ce forum sans succès...

sachant que mon annuaire est déjà URL rewrité avec comme code :
Code: Tout sélectionner
Options +FollowSymlinks
RewriteEngine on

RewriteRule ^art-([0-9]+)\.html$ index.php?cat_id=$1
RewriteRule ^art-([0-9]+)-([0-9]+)\.html$ index.php?cat_id=$1&page=$2
RewriteRule ^goto-([0-9]+)\.html$ goto.php?id=$1


voici le code que j'avais essayé d'ajouter mais qui fait planter le serveur...
Code: Tout sélectionner
RewriteRule ^([a-z\-]+)_([A-Za-z0-9_% \.\+\-\*~'\" ]*)\.html$ search.php?recherche=$1


J'ai trois autres questions :
- comment transformer les cactères spéciaux ?
- a quoi sert le [L] derrière une règle de réecriture ?
- lorsque on a url-rewrité, l'appel des pages doit-il etre modifié ou l'ancienne URL fonctionne-t-elle encore ?

Merci pour votre aide.
Jerome

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Sam Jan 01, 2005 20:11

Bonjour,
n'ayant pas eu de réponse, je suppose que mon message était trop général. donc je simplifie ma question :

si je veux url rewriter une url du type search.php?recherche=chevalet, en chevalet.html, est-ce correct de mettre ceci dans mon htacess ?
RewriteRule ([0-9]+)\.html$ search.php?recherche=$1

j'obtiens un message d'erreur lorsque je teste (404)


Pulsar-san
WRInaute discret
WRInaute discret
 
Messages: 210
Inscription: 29 Oct 2003

Message le Sam Jan 01, 2005 22:22

Le [L] dit qu'il faut arrêter d'appliquer les règles si celle-ci est activée.
([L] = Last)
Donc tu devrais le mettre à la fin de chaque règle.
Il y a d'autres code que tu trouveras ici :
http://httpd.apache.org/docs/misc/rewriteguide.html

Si tu as de l'aphanumérique en entrée
Code: Tout sélectionner
RewriteRule ([0-9]+)\.html$ search.php?recherche=$1
ne marchera pas car il ne prendra que du numérique.
Par contre
Code: Tout sélectionner
RewriteRule ([a-zA-Z0-9]+)\.html$ search.php?recherche=$1
devrait fonctionner correctement.

Pour en revenir à ta première demande
Code: Tout sélectionner
RewriteRule ^([a-z\-]+)_([A-Za-z0-9_% \.\+\-\*~'\" ]*)\.html$ search.php?recherche=$1
comporte des choses inutiles dnas la mesure où tu supprime les espaces (%20).
Donc, ceci devrait suffire:
Code: Tout sélectionner
RewriteRule ^([a-z\-]+)_([A-Za-z0-9\-]*)\.html$ search.php?recherche=$1

(Je ne suis pas sûr qu'il soit nécessaire de mettre des "\" devant les "-")

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Dim Jan 02, 2005 18:35

effectivement, ca marche mieux en prenant l'alphanumérique aussi ! :wink:
merci pour le tuyau!
voici la ligne que j'ai à présent :

Code: Tout sélectionner
RewriteRule ^([a-zA-Z0-9]+)\.html$   search.php?recherche=$1 [QSA,L]


je n'ai plus qu'un problème : en php, comment remplacer le %20 en "_" dans la construction de mes URLs ?

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Dim Jan 02, 2005 18:37

en effet, sur ma page http://www.ateliermagique.com/annuaire/ ... erches.php, je construits les urls des tops recherche.

dois-je aussi dans le htaccess remplacer les espace par "_" ?
Merci,
Jerome

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Dim Jan 02, 2005 19:04

Pulsar-san a écrit:
Code: Tout sélectionner
RewriteRule ^([a-z\-]+)_([A-Za-z0-9\-]*)\.html$ search.php?recherche=$1



quelle est la différence entre ([a-z\-]+) avec un "+" et ([A-Za-z0-9\-]*) avec un "*" ?

et pourquoi faut-il mettre un "$" après html ?
en fait on l'a compris je suis novice en rewiting et je n'ai pas trouvé un guide sur wri...
merci pour le lien en anglais.


Pulsar-san
WRInaute discret
WRInaute discret
 
Messages: 210
Inscription: 29 Oct 2003

Message le Dim Jan 02, 2005 20:54

La différence entre "." et "*"
"." = 1 ou plus caractères
"*" = 0 ou plus caractères

"^" = début de la chaine à transformer
"$" = fin de la chaine à transformer

Pour remplacer les espaces, ça dépend comment ils sont enregistrés dans ta base de données, est-ce " " ou bien "%20" ?
Pour traiter les deux:
Code: Tout sélectionner
ereg_replace("[:space:]|[%20]", "_", $tachaine);

Je crois que c'est ça.
Je ne sais plus si :space: concerne l'un ou l'autre ou bien les deux :?

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Lun Jan 03, 2005 9:06

je ne sais pas comment ils sont enregistrés. Il suffit que je regarde dans phpmyadmin ?
en tous cas, merci pour le tuyau. donc je mets cela dans mon url ce soir.
Merci!

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Mar Jan 04, 2005 7:32

Bonjour
en regardant dans ma base de donnée, les espaces sont stockés avec des " ". j'ai donc utilisé la fonction ci-dessus :
Code: Tout sélectionner
$expression_traitee = ereg_replace(' ','_',$row["expression"]);


le résultat est le bon : http://www.ateliermagique.com/annuaire/ ... erches.php. dès que j'ai plusieurs mots dans expression, le lien construit est bien mot1_mot2.html.

Par contre que dois-je ajouter dans mon .htaccess pour tenir compte des recherches à deux mots ?
aujourd'hui, j'ai cela :
Code: Tout sélectionner
RewriteRule ^([a-zA-Z0-9]+)\.html$   search.php?recherche=$1 [QSA,L]
,
ce qui permet de transformer cheval.html en search.php?recherche=cheval

mais dès que j'ai une recherche à au moins 2 mots, j'obtiens une erreur 404.
donc quelle règle ajouter dans le fichier pour que mot1_mot2.html donne search.php?recherche=mot1 mot2 ?

Merci encore...
Jerome


web-soluces.net
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 286
Inscription: 1 Juin 2003

Message le Dim Sep 25, 2005 23:58

Tu as trouvé une solution ?

Car je suis moi meme a la recherche de ce type de rewrinting pour une requette de plusieurs mots...

JeromeRookie
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 462
Inscription: 11 Aoû 2003

Message le Mar Sep 27, 2005 5:19

non je n'ai pas trouvé. donc l'astuce que j'utilise est la suivante :
si qqun cherche 'dessin cheval', je log dessin_cheval et 'dessin cheval' dans mon top recherche. j'affiche le second mais en traitement, j'utilise le premier...

lorsque la page dessin_cheval.html est appelée, son premier traitement est de transformer 'dessin_cheval' en 'dessin cheval'

voilà


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 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 Trends Recherche Personnalisée

  • Trouver la position d'un site dans Google
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Google, pour certains mots-clés recherchés.
  • Trouver la position d'un site dans Yahoo
    Cet outil vous permet de vérifier si une ou plusieurs page(s) de votre site arrive(nt) dans les premiers résultats de Yahoo, pour certains mots-clés recherchés.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité