URL-rewriting UTF8 et accents

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

Hyogapag
Nouveau WRInaute
 
Messages: 7
Inscription: Jeu Mar 03, 2005 10:10

URL-rewriting UTF8 et accents

Message le Dim Juin 25, 2006 15:12

Bonjour,
j'ai un petit problème d'URL-Rewriting et d'accents.
Voilà la situation. L'URL de base, sans rewriting, ressemble à cela : site.php?foo=bar&foo2=bar2. Rien de bien méchant donc. J'ai fait un URL Rewriting qui produit une URL de type domaine.com/bar/bar2.html
Tant qu'il n'y a pas d'accent, je n'ai aucun problème. Seulement voilà, en fait la variable bar2 correspond à une valeur se trouvant dans une base de données, et mes pages sont encodées en UTF-8. Donc tous les accents de la page sont exprimés par des caractères du type
Code: Tout sélectionner
é
. Donc toutes les données de la base de données sont codées de même. Pour transposer les variables dans l'URL, j'utilise la fonction rawurlencode. Donc si la valeur dans ma base de données à rechercher est Divinité, le mot est codé comme suit :
Code: Tout sélectionner
Divinit%26eacute%3B
. Tant qu'il s'agit de l'URL normal, aucun problème. Mais en URL-rewriting, j'obtiens le simple message "erreur" (mais s'il n'y a pas d'accent, tout va bien). Si je remplace, dans l'URL réécrit,
Code: Tout sélectionner
Divinit%26eacute%3B
par
Code: Tout sélectionner
Divinit%E9
, bien entendu le mot n'est pas trouvé dans la base de données.

Quelqu'un sait-il comment je peux résoudre ce problème?


achtungbaby
WRInaute accro
WRInaute accro
 
Messages: 4057
Inscription: Lun Juin 14, 2004 12:37

Message le Dim Juin 25, 2006 15:14

on ne met pas d'accents dans une url, il faut supprimer les accents.


Tilt
WRInaute passionné
WRInaute passionné
 
Messages: 818
Inscription: Sam Mar 26, 2005 11:48

Message le Dim Juin 25, 2006 15:38

+1 mais si c'est vraiment nécessaire, tu dois récupérer ta variable foo "divinité" comme suit:
$a=Divinit%26eacute%3B //variable récupérée dans l'url
$a=urldecode($a);
et $a fait "Divinité"
magique!
mais si je peux te donner un tuyau:
dans ta bdd, ne stockes pas du html avec des entités html (é etc...). tu stockes du texte, sinon tes recherches textuelles te donnent de gros ennuis.
Le mieux:
1/ stocker "divinité" dans la bdd.
2/ lancer une fonction qui transforme "divinité" en "divinite"
3/ appeler http://domaine.com/divinite/ qui, rewrité, te donne x.php?foo=divinite
4/ et là seulement, lancer ta recherche textuelle bdd insensible aux accents. tu auras comme résultats et les occurennces de "divinité" et celles de "divinite".
pas compliqué en fait.
:)


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 :

  • Liste des 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 textes non cliquables 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