Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

[script] Génération Google sitemap dynamique sans BDD

Aller à la page 1, 2, 3, 4  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Indexation dans Google   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
fandecine
Modérateur
Modérateur

Inscrit le: 02 Avr 2005
Messages: 1401
Localisation: Béarn

URL permanente de ce messagePosté le : Mer Juin 29, 2005 19:39    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

J'avais promis dans un post précédant de publier mon script PHP de génération dynamique de fichier sitemap.xml, alors voila.

Le principe consite à faire générer les données du fichier sitemap par les visiteurs de votre site (bien pratique pour les sites ayant de nombreuses pages générées dynamiquement). A chaque visite, on génére un petit fichier (s'il n'existe pas) contenant l'url de la page et la date courante:

Code:

<?php
   $urldemandee=$_SERVER['REQUEST_URI']; // on récupère l'url de la page courante
   // on met cette url en forme pour en faire un nom de fichier valide
   $urldemandee=ereg_replace('/','-',$urldemandee);
   if($urldemandee=="-") $urldemandee="-index.html";
   $fichierSitemaps="sitemaps".$urldemandee;
   $fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
      // on teste si le fichier existe déjà
     if(file_exists("/cheminabsolut/sitemaps/ ".$fichierSitemaps)==false) { 
      $fd = fopen("sitemaps/".$fichierSitemaps, "w"); //on ouvre le fichier
      if ($fd) {
         if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
         $sitemapsContent="<url>\n\t<loc>http://www.domaine.com".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m:s+00:00')."</lastmod>\n</url>\n"; //on formate les infos pour le XML
         fwrite($fd,$sitemapsContent); //on ecrit le fichier
         fclose($fd);//on ferme le fichier
       }
   }
?>


Maintenant on fait un script que l'on place par exemple à la racine du site sous le nom monsitemap.php:


Code:

<?
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
';
foreach (glob("/cheminabsolut/sitemaps/*.*") as $filename) {
   $filename = str_replace("/cheminabsolut/','',$filename);
   include ($filename);
}

echo"</urlset>";
?>


Maintenant on ajoute une regle dans le .htaccess:
Code:

RewriteRule ^sitemap\.xml$ /monsitemap.php [QSA,L]


Je vous laisse le soin d'intégrer le script nécéssaire à l'effacement des fichiers du repertoire sitemaps dans votre backoffice pour gerer les mises à jour! Wink

note: Pour les sites qui comprennent un nombre de pages proche de la limite fixée par google pour le fichier sitemap, je publierais prochainement une adaptation gérant les fichiers sitemaps en cascade....


Dernière édition par fandecine le Jeu Juin 30, 2005 15:26; édité 1 fois
 
fandecine Visiter le site web du posteur
netsba
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 17 Nov 2004
Messages: 220

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 0:54    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

stp je suis tres interessé par ton script tu peux m'expliquer comment ca marche!!

esque c possible d'interdire des url de pages comme robots??
je suis pas tres intéligent je te l'accorde

le 1er script je le place sur toutes mes pages
le 2emme je change cheminabsolut en /home/www...
 
netsba Visiter le site web du posteur
fandecine
Modérateur
Modérateur

Inscrit le: 02 Avr 2005
Messages: 1401
Localisation: Béarn

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 8:30    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

netsba a écrit:
le 1er script je le place sur toutes mes pages

Uniquement dans les pages que tu veux inclure au fichier sitemap...
netsba a écrit:
le 2emme je change cheminabsolut en /home/www...
oui
 
fandecine Visiter le site web du posteur
Jaunalgi
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2004
Messages: 255

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 15:18    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Il y a 2 erreurs de progra dans ton code fandecine :

Code:
<?php
   $urldemandee=$_SERVER['REQUEST_URI']; // on récupère l'url de la page courante
   // on met cette url en forme pour en faire un nom de fichier valide
   $urldemandee=ereg_replace('/','-',$urldemandee);
   if($urldemandee=="-") $urldemandee="-index.html";
   $fichierSitemaps="sitemaps".$urldemandee;
   $fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
      // on teste si le fichier existe déjà
     if(![color=red]([/color]file_exists("/cheminabsolut/sitemaps/  ".$fichierSitemaps)!==false) {
      $fd = fopen("sitemaps/".$fichierSitemaps[color=red]"[/color], "w"); //on ouvre le fichier
      if ($fd) {
         if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
         $sitemapsContent="<url>\n\t<loc>http://www.domaine.com".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m:s+00:00')."</lastmod>\n</url>\n"; //on formate les infos pour le XML
         fwrite($fd,$sitemapsContent); //on ecrit le fichier
         fclose($fd);//on ferme le fichier
       }
   }
?>


A enlever les deux fois Wink
Pas encore testé le script.

---------
Edit :
Encore 2 erreurs :
Code:
<?
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
';
foreach(glob("/cheminabsolu/*.*") as $filename) {
   $filename = str_replace("/cheminabsolu/[color=red]',''[/color],$filename);
   include ($filename);
}

echo "</urlset>";
?>
 
Jaunalgi Visiter le site web du posteur
fandecine
Modérateur
Modérateur

Inscrit le: 02 Avr 2005
Messages: 1401
Localisation: Béarn

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 15:29    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Jaunalgi a écrit:
Il y a 2 erreurs de progra dans ton code fandecine :
A enlever les deux fois Wink
Pas encore testé le script.


OOPS! Embarassed ça m'apprendra!
J'ai édité le post pour le corriger! Very Happy

il y en a au moins un qui suit! Wink
 
fandecine Visiter le site web du posteur
Jaunalgi
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2004
Messages: 255

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 15:32    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

J'ai testé le script après avoir modifié les erreurs que je t'ai donné plus haut.

Voici le script après correction Wink
Code:
<?php
   $urldemandee=$_SERVER['REQUEST_URI']; // on récupère l'url de la page courante
   // on met cette url en forme pour en faire un nom de fichier valide
   $urldemandee=ereg_replace('/','-',$urldemandee);
   if($urldemandee=="-") $urldemandee="-index.html";
   $fichierSitemaps="sitemaps".$urldemandee;
   $fichierSitemaps=str_replace('sitemaps-','',$fichierSitemaps);
      // on teste si le fichier existe déjà
     if(!file_exists("//cheminabsolu/sitemaps/".$fichierSitemaps)!==false) {
      $fd = fopen("sitemaps/".$fichierSitemaps,"w"); //on ouvre le fichier
      if ($fd) {
         if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
         $sitemapsContent="<url>\n\t<loc>http://www.grandprix4.org".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m:s+00:00')."</lastmod>\n</url>\n"; //on formate les infos pour le XML
         fwrite($fd,$sitemapsContent); //on ecrit le fichier
         fclose($fd); //on ferme le fichier
       }
   }
?>


Code:
<?php
header("Content-Type: text/xml"); // On déclare un fichier XML
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
';
foreach(glob("/cheminabsolu/sitemaps/*.*") as $filename) {
   $filename = str_replace("/cheminabsolu/","",$filename);
   include ($filename);
}

echo "</urlset>";
?>


Code:
RewriteRule ^sitemap\.xml$ /monsitemap.php [QSA,L]


ç'a l'air de bien fonctionner maintenant :
/** URL editée par Jaunalgi - sitemap hors ligne **/

Petit bémol : je ne veux pas indexer index.html pour éviter le conflit avec le domaine seul.


Dernière édition par Jaunalgi le Mar Sep 19, 2006 12:54; édité 1 fois
 
Jaunalgi Visiter le site web du posteur
fuleran
Nouveau WRInaute

Inscrit le: 10 Fév 2004
Messages: 43

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 17:17    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Si je ne me trompe pas, ton fichier xml contient plusieurs fois la même page (en particulier ta page d'accueil).
 
fuleran Visiter le site web du posteur
Jaunalgi
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2004
Messages: 255

URL permanente de ce messagePosté le : Jeu Juin 30, 2005 17:37    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Ah oui, bien vu.

C'est bizarre ça Surprised J'ai ptêt fait une erreur de paramétrage alors...

----------------
Edit : j'avais mis une ligne en commentaire et du coup, la page d'accueil revenait sans cesse, bien vu fuleran Wink
 
Jaunalgi Visiter le site web du posteur
treivilo
WRInaute discret
WRInaute discret

Inscrit le: 21 Sep 2004
Messages: 97
Localisation: Rennes, Bretagne

URL permanente de ce messagePosté le : Ven Juil 01, 2005 7:51    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Bonjour à toutes et à tous,

à ce propos, j'ai trouvé un petit site bien pratique :

www.autositemap.com

Il permet, en affichant un marqueur sur les pages d'un site, de générer dynamiquement le sitemap d'un site.

Le principe est simple, chaque requête à l'image en question contient (du moins pour la majorité des personnes visitant le site) le referer de cette image. Donc, il ne reste plus qu'à extraire d'une base de données tous les réfèrants, de formater l'affichage et hop Wink

Olivier
 
treivilo Visiter le site web du posteur
fandecine
Modérateur
Modérateur

Inscrit le: 02 Avr 2005
Messages: 1401
Localisation: Béarn

URL permanente de ce messagePosté le : Ven Juil 01, 2005 17:17    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Jaunalgi a écrit:

Petit bémol : je ne veux pas indexer index.html pour éviter le conflit avec le domaine seul.


d'ou l'interet de ce bout de code: Wink
Code:
if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html
 
fandecine Visiter le site web du posteur
silius
Nouveau WRInaute

Inscrit le: 29 Mai 2005
Messages: 44

URL permanente de ce messagePosté le : Sam Juil 02, 2005 23:49    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Merci pour ce script, très pratique :p
 
silius Visiter le site web du posteur
khirani
Nouveau WRInaute

Inscrit le: 03 Aoû 2004
Messages: 21
Localisation: Paris

URL permanente de ce messagePosté le : Mar Juil 12, 2005 17:36    Sujet du message: SiteMap google

Salut Fandcine

je suis trés intéréssé par ce script, par contre je sais comment l'installer :

le 1er bloc, ou ?
2em ou ?

les deux blocs de codes dans le meme page sitemap.php ?

j'ai essayé, mais une erreur : (j pense problem de chemin )

Parse error: parse error, unexpected T_IF in /home/besthoteu/www/spain/monsitemap.php on line 5

Merci par avance
 
khirani Visiter le site web du posteur
fandecine
Modérateur
Modérateur

Inscrit le: 02 Avr 2005
Messages: 1401
Localisation: Béarn

URL permanente de ce messagePosté le : Mer Juil 13, 2005 15:18    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

le premier bloc de code doit être inserré dans toutes les pages du site.

Le second est un script php (fichier sitemap.php) permettant de générer les données du fichier sitemap. Si on inserre le troisième le bloc de code dans le fichier htacces, l'appel de sitemap.xml affichera le fichier sitemap!

voila! Very Happy
 
fandecine Visiter le site web du posteur
jyl
Nouveau WRInaute

Inscrit le: 30 Jan 2005
Messages: 19
Localisation: Près du PC dans le 12

URL permanente de ce messagePosté le : Mer Juil 20, 2005 18:49    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

Bjr,

Merci beaucoup pour ce très pratique script fandecine ! Smile

Après quelques tests cela me génere bien monsitemap.php

Par contre comme je lisais la notice de google et voyais les autres tags : du syle <changefreq> et <priority>, ceux si sont optionnels d'accord, mais je me demandais si cela était vraiment nécessaire de les créer ???

Si cela apportais quelques choses pour le référencement, la rapidité de ref, etc.. ?

Merci d'avance Smile

JY


PS: je modifie mon post pour ajouter les quelques lignes de code pour ces 2 tags:


Code:

//  la fréquence de renouvellement de la page
$changefreq=array(0=>'always',
                             1=>'hourly',
                2=>'daily',
                3=>'weekly',
                4=>'monthly',
                5=>'yearly',
                6=>'never');
// 0.0 to 1.0, The default priority of a page is 0.5
$priority='0.4';
$sitemapsContent="<url>\n\t<loc>http://www.votresite.com".$filtrePage."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:m:s+00:00')."</lastmod>\n<changefreq>".$changefreq[2]."</changefreq>\n<priority>".$priority."</priority>\n</url>\n"; //on formate les infos pour le XML


Et plus qu'a executer http://www.votresite.com/monsitemap.php

Plus qu'a faire une fonction de tout ça, pour faire plus beau Wink
 
jyl
fandecine
Modérateur
Modérateur

Inscrit le: 02 Avr 2005
Messages: 1401
Localisation: Béarn

URL permanente de ce messagePosté le : Jeu Juil 21, 2005 0:16    Sujet du message: [script] Génération Google sitemap dynamique sans BDD

jyl a écrit:
Par contre comme je lisais la notice de google et voyais les autres tags : du syle <changefreq> et <priority>, ceux si sont optionnels d'accord, mais je me demandais si cela était vraiment nécessaire de les créer ???


Personnellement, je n'ais pas assez de recul sur l'utilisation de GGSitemap pour dire si ces tags apportent quelquechose ou pas. J'ai choisi la simplicité en les ignorant... pour l'instant.
 
fandecine Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Indexation dans Google Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 4 - Aller à la page 1, 2, 3, 4  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort