Bonjour à tous,
J'ai précédemment cherché, mais pas trouvé de solution à mon problème.
En fait j'ai récemment installé un système de génération dynamique du sitemap de mon site. C'est à dire que chaque page demandée par un visiteur est enregistrée dans une table. Ensuite quand on demande mon sitemap.xml, je le génère à la volée grace à mon script dans sitemap.php.
Tout cela marche bien, excepté que je remarque dans mon sitemap des url formatée bizarrement. Et elles sont pareil dans la base de données, donc j'en déduis que c'est au moment de récupérer l'url pour l'enregistrer dans la base de données que y'a un problème.
Ces url bizarre sont formées avec le moteur de recherche. Il s'agit d'un formulaire qui fonctionne en GET (et pas en post pour pouvoir référencer les pages résultat).
Par exemple si je recherche "aérothermie", je vais bien avoir dans mon sitemap l'adresse de la forme :
http://www.choisir-une-entreprise.com/annuaire.php?s=a%E9rothermie
Mais j'ai remarqué qu'il y a aussi l'adresse suivante de référencée :
http://www.choisir-une-entreprise.com/annuaire.php?s=a%EF%BF%BDrothermie
Et quand on visite la dernière page, on se rend compte que l'encodage ne marche pas, ça me met plein de caractères bizarres.
Donc ma question, c'est pourquoi l'url est-elle encodée de cette façon sur certaines url, cela dépend-il du navigateur ? de l'encodage de ma page ? ou alors de mon script PHP qui récupère l'url ?
Voici le script au passage :
// Ajoute un site au sitemap
function Sitemap_AddSite( $Url ) {
$DateAjout = date('Y-m-d');
$req = "INSERT INTO sitemap
(Url, SitemapFile, DateAjout, DateAffichage)
VALUES
('$Url', '" . SITEMAP . "', '$DateAjout', '$DateAjout')";
$result = mysql_query($req);
}
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
Sitemap_AddSite($url);
PS : j'ai mis les liens vers mon vrai site, c'est pour que vous puissiez voir le résultat, je n'ai que peu d'intérêt à faire de la pub pour mon site de cette façon.
Merci !
Matthieu :?
J'ai précédemment cherché, mais pas trouvé de solution à mon problème.
En fait j'ai récemment installé un système de génération dynamique du sitemap de mon site. C'est à dire que chaque page demandée par un visiteur est enregistrée dans une table. Ensuite quand on demande mon sitemap.xml, je le génère à la volée grace à mon script dans sitemap.php.
Tout cela marche bien, excepté que je remarque dans mon sitemap des url formatée bizarrement. Et elles sont pareil dans la base de données, donc j'en déduis que c'est au moment de récupérer l'url pour l'enregistrer dans la base de données que y'a un problème.
Ces url bizarre sont formées avec le moteur de recherche. Il s'agit d'un formulaire qui fonctionne en GET (et pas en post pour pouvoir référencer les pages résultat).
Par exemple si je recherche "aérothermie", je vais bien avoir dans mon sitemap l'adresse de la forme :
http://www.choisir-une-entreprise.com/annuaire.php?s=a%E9rothermie
Mais j'ai remarqué qu'il y a aussi l'adresse suivante de référencée :
http://www.choisir-une-entreprise.com/annuaire.php?s=a%EF%BF%BDrothermie
Et quand on visite la dernière page, on se rend compte que l'encodage ne marche pas, ça me met plein de caractères bizarres.
Donc ma question, c'est pourquoi l'url est-elle encodée de cette façon sur certaines url, cela dépend-il du navigateur ? de l'encodage de ma page ? ou alors de mon script PHP qui récupère l'url ?
Voici le script au passage :
// Ajoute un site au sitemap
function Sitemap_AddSite( $Url ) {
$DateAjout = date('Y-m-d');
$req = "INSERT INTO sitemap
(Url, SitemapFile, DateAjout, DateAffichage)
VALUES
('$Url', '" . SITEMAP . "', '$DateAjout', '$DateAjout')";
$result = mysql_query($req);
}
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
Sitemap_AddSite($url);
PS : j'ai mis les liens vers mon vrai site, c'est pour que vous puissiez voir le résultat, je n'ai que peu d'intérêt à faire de la pub pour mon site de cette façon.
Merci !
Matthieu :?
