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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


ericdebra
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: Ven Juin 25, 2004 18:22

Message le Lun Juin 05, 2006 11:00

Il y a un premier bout de code à mettre sur chaque page. C'est de ça dont je parle en tant que 1er script.

PS : Je parlais aussi de ça :) Ce n'est pas parce qu'un sitemap contient 3500 liens que Google va tous les indexer même s'ils sont valides.


silius
Nouveau WRInaute
 
Messages: 44
Inscription: Dim Mai 29, 2005 0:30

Message le Ven Juin 30, 2006 14:08

Si sa peut en aider quelques un voici une fonction trouvée sur le net qui permet de remplacer la fonction glob quand celle-ci est désactivée :

Code: Tout sélectionner
     function free_glob($path) {
          $result = Array();
          $index = 0;
          preg_match("#^(.*/)?([^/]*)$#", $path, $matches);
          list(, $dir, $path) = $matches;
          $path = "#" . str_replace(Array("\\", ".", "[", "]", "?",
                                          "+", "(", ")", "#", "*"),
                                    Array("\\\\", "\\.", "\\[", "\\]", "\\?",
                                          "\\+", "\\(", "\\)", "\\#", "([^/]*)"),
                                    $path) . "#";
          if($dir == '')
               $handle = opendir('.');
          else
               $handle = opendir($dir);
          while($file = readdir($handle)) {
               if($file == '..' || $file == '.')
                    continue;
               if(preg_match($path, $file)) {
                    if(is_file($dir . $file)) {
                         $result[$index] = $dir . $file;
                         $index++;
                    }
               }
          }
          closedir($handle);
          return $result;
     }


have fun

alainp
WRInaute discret
WRInaute discret
 
Messages: 99
Inscription: Ven Juin 13, 2003 17:51

Message le Ven Juil 14, 2006 11:25

Bonjour,

Je viens d'installer le script modifié par yvan02
Celà fonctionne au niveau de la récupération des url de page mais quand j'appelle le second script pour obtenir le sitemap j'ai l'erreur suivante :

La page XML ne peut pas être affichée
Impossible d'afficher l'entrée XML en utilisant la feuille de style XSL. Corrigez l'erreur, puis cliquez sur le bouton Actualiser ou réessayez ultérieurement.


--------------------------------------------------------------------------------

Le symbole point-virgule était attendu. Erreur de traitement de la ressource ***p://www.monsite.net/monsitemap.php. Lig...


Merci pour votre aide

divine99
Nouveau WRInaute
 
Messages: 16
Inscription: Lun Mai 15, 2006 17:43

Message le Lun Juil 17, 2006 20:08

silius a écrit:Si sa peut en aider quelques un voici une fonction trouvée sur le net qui permet de remplacer la fonction glob quand celle-ci est désactivée


Justement à ce propos, est-ce que quelqu'un est arrivé à faire fonctionner le script sans utiliser la fonction glob ? Ta fonction, j'ai pas réussi à l'utiliser moi ... T'as fait quoi sur ton site exactement ?


silius
Nouveau WRInaute
 
Messages: 44
Inscription: Dim Mai 29, 2005 0:30

Message le Lun Juil 17, 2006 20:23

Code: Tout sélectionner
<?php
     function free_glob($path) {
          $result = Array();
          $index = 0;
          preg_match("#^(.*/)?([^/]*)$#", $path, $matches);
          list(, $dir, $path) = $matches;
          $path = "#" . str_replace(Array("\\", ".", "[", "]", "?",
                                          "+", "(", ")", "#", "*"),
                                    Array("\\\\", "\\.", "\\[", "\\]", "\\?",
                                          "\\+", "\\(", "\\)", "\\#", "([^/]*)"),
                                    $path) . "#";
          if($dir == '')
               $handle = opendir('.');
          else
               $handle = opendir($dir);
          while($file = readdir($handle)) {
               if($file == '..' || $file == '.')
                    continue;
               if(preg_match($path, $file)) {
                    if(is_file($dir . $file)) {
                         $result[$index] = $dir . $file;
                         $index++;
                    }
               }
          }
          closedir($handle);
          return $result;
     }
   
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
';

foreach (free_glob("/chemin-absolut/ton-site.fr/sitemaps/*.*") as $filename) {
   $filename = str_replace("/chemin-absolut/ton-site.fr/","",$filename);
   include ($filename);
}

echo'</urlset>';
?>


Voila ! Sa marche super sur sivit mutualisé et pour les autres aussi je pense
+@+

divine99
Nouveau WRInaute
 
Messages: 16
Inscription: Lun Mai 15, 2006 17:43

Message le Lun Juil 17, 2006 21:02

Merci BEAUCOUP !
Ca faisait au moins trois heures que je cherchais ! :wink:

Au fait, il y a une raison pour laquelle tu ne mets pas çà en début de script ?
header("Content-Type: text/xml"); // On déclare un fichier XML
Code: Tout sélectionner
echo'<'.'?xml version="1.0" encoding="UTF-8"?'.'>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84 http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
';


silius
Nouveau WRInaute
 
Messages: 44
Inscription: Dim Mai 29, 2005 0:30

Message le Lun Juil 17, 2006 21:18

Il faut définir la fonction avant de l'utiliser, donc :

On la déclare :

Code: Tout sélectionner
  function free_glob($path) {
          $result = Array();
          $index = 0;  ....

      return $result;
     }


Et on l’utilise :

Code: Tout sélectionner
foreach (free_glob("/chemin-absolut/ton-site.fr/sitemaps/*.*")


Après la transformation du script par le serveur on a bien l’echo, en premier voilou :D

proximarc
Nouveau WRInaute
 
Messages: 1
Inscription: Mar Oct 03, 2006 13:23

Bonjour !

Message le Mar Oct 03, 2006 13:47

une gentille personne a fait mon site forum :
http://www.proximarc.com/leforum/portal.php
Hélas ! elle m'a abandonné pour des raisons qui lui sont propres !
Moi j'y connais rien !
Jamais encore fais de site lol je ne sais par où commencer.
Hors j'arrive sur cette page qui semble formidable.

est-il possible d'envoyer ma première page et de me dire où placer cet codes.

j'espère être pas trop dérangeant.

amitiés d'un retraité perdu


GarGamel55
Nouveau WRInaute
 
Messages: 29
Inscription: Jeu Sep 28, 2006 11:15

Message le Ven Oct 13, 2006 16:31

Bonjour

J'ai une question :

Le script reprend les url générés par mon moteur de recherche, utilisant les pseudos frames, il éxecute forcement le script :x

Comment je peux faire pour ne pas générer l'url du ayant 'recherche' dans l'url ?

Merci d'avance

Snoopy52
Nouveau WRInaute
 
Messages: 38
Inscription: Jeu Déc 23, 2004 16:40

Message le Mer Nov 22, 2006 16:41

fandecine a écrit:
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: Tout sélectionner
if($_SERVER['REQUEST_URI']=="/") $filtrePage="/index.html";else $filtrePage=$_SERVER['REQUEST_URI']; //on evite de dupliquer domaine.com et domaine.com/index.html



Bonjour à tous,

J'ai installé le script sur mon site, mais le fichier xml comporte :

Code: Tout sélectionner
<?xml version="1.0" encoding="UTF-8" ?>
- <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
- <url>
  <loc>http://www.monsite.com/index.html</loc>
  <lastmod>2006-11-22T16:34:33+00:00</lastmod>
  </url>
  </urlset>


Est-ce normal ?
Parce que justement, je ne souhaite pas non plus que index.html soit indexé.
Je suis en 90plan chez OVH.

Merci pour votre réponse.


Dark_Shark
WRInaute impliqué
WRInaute impliqué
 
Messages: 404
Inscription: Jeu Mar 09, 2006 18:10

Message le Lun Fév 19, 2007 7:06

Bonsoir,

Le script à l'air très intéressant dans son principe, j'aimerais juste savoir si celui ci est compatible dans le cas d'un hébergement free.fr

Merci

fqbien
Nouveau WRInaute
 
Messages: 28
Inscription: Mer Fév 14, 2007 19:21

Message le Sam Mar 03, 2007 11:52

merci pour se script;

Code: Tout sélectionner
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....


A quand ce script ?

merci ;)

Stellvia
WRInaute impliqué
WRInaute impliqué
 
Messages: 414
Inscription: Mar Déc 28, 2004 0:02

Message le Lun Déc 17, 2007 0:44

Salut tout le monde

Ce script est tres bien pensé dans le principe ( c'est intéligent d'avoir pensé a faire bosser les visiteurs ;)

Je l'ais installé et essayé plusieurs jours .

Il y a malheureusement un gros bémol , voir meme un gros point noir :

Lorsqu'un visiteur , ou un bot , entre un parametre quelquonque dans l'url , ca lance le script ( comme tt les pages ) , et ajoute une page dans le site map , une page qui n'existe pas !

C'est très genant et je crois que du coup je vais le désinstaller faut de solution , a moins que quelqu'un ais une idée ?


crocxx
WRInaute discret
WRInaute discret
 
Messages: 91
Inscription: Mer Sep 01, 2004 11:56

Message le Dim Juin 01, 2008 20:55

Bonjour,
Merci pour ce script très intéressant :)


crocxx
WRInaute discret
WRInaute discret
 
Messages: 91
Inscription: Mer Sep 01, 2004 11:56

Message le Jeu Juil 10, 2008 11:46

Stellvia a écrit:Salut tout le monde

Ce script est tres bien pensé dans le principe ( c'est intéligent d'avoir pensé a faire bosser les visiteurs ;)

Je l'ais installé et essayé plusieurs jours .

Il y a malheureusement un gros bémol , voir meme un gros point noir :

Lorsqu'un visiteur , ou un bot , entre un parametre quelquonque dans l'url , ca lance le script ( comme tt les pages ) , et ajoute une page dans le site map , une page qui n'existe pas !

C'est très genant et je crois que du coup je vais le désinstaller faut de solution , a moins que quelqu'un ais une idée ?


Personnellement j'ai résolut le problème, je fait de l'urlrewriting sur toute mes pages pour ne plus avoir de paramétré dans mes urls et je supprime les paramétre dans le code.

Code: Tout sélectionner
<?php
$Dossier='sitemaps/';
$url = parse_url($_SERVER['REQUEST_URI']);
$fichierSitemaps="map-".ereg_replace('/','-',$url['path']);

     if(file_exists($_SERVER['DOCUMENT_ROOT']."/sitemaps/".$fichierSitemaps)==false)
    {
      $fd = fopen('sitemaps/'.$fichierSitemaps, 'w'); 
      if ($fd)
      {
         if($url['path']=="/index.php") $Page="/"; else $Page=$url['path'];
         $Page=ereg_replace('&','&amp;',$Page);
         
         fwrite($fd,"<url>\n\t<loc>http://".$_SERVER['HTTP_HOST'].$Page."</loc>\n\t<lastmod>".date('Y-m-d')."T".date('H:i:s+00:00')."</lastmod>\n</url>\n");
         fclose($fd);
      }
   }
?>

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

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... 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 :



Qui est en ligne

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