HOME
 
 

Génération automatique de fichier Google sitemap au format XML

Génération automatique de fichier Google sitemap au format XML

24 mars 2008

AddThis Social Bookmark Button

Cet article expose une méthode simple et automatique de génération dynamique de fichier sitemap.xml pour les sites hébergés sous Apache avec PHP et MySQL. Cette méthode utilise l'url rewriting d'Apache.

La méthode consiste à insérer sur chaque page d'un site un script PHP. Ce dernier aura pour but de vérifier l'existence de l'url de la page dans la bdd.

Un deuxième script sert à générer le sitemap en lui-même. Il se connecte en bdd et retourne les résultats au format sitemap xml.

Certaines configurations d'apache ne permettent pas l'interprétation du php dans les fichiers xml, il faut utiliser une règle d'url-rewriting pour que le script php soit exécuté lors de la demande du fichier sitemap.

 

 
 

 


Table en base de données MySQL

Nom: Sitemapurls
Colonne - [Type] - Additionnal options
Id - [INT] - PRIMARY auto-increment
Url - [VARCHAR(255)]

Script d'insertion d'url en base de données MySQL

<?php
$cnx 
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$sql "SELECT COUNT(*) FROM sitemapurls WHERE Url='".$_SERVER['REQUEST_URI']."'";
$res mysql_query($sql$cnx) or die("MySQL query error");
if(
mysql_num_rows($res)==0)
{
    
$sql "INSERT INTO Sitemapurls (Url) VALUES('".$_SERVER['REQUEST_URI']."')";
    
mysql_query($sql$cnx) or die("MySQL query error");
}
?>

Script sitemap.php de generation de sitemap

<?php
$cnx 
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$sql "SELECT Url FROM sitemapurls"
$res mysql_query($sql$cnx) or die("MySQL query error");

header("Content-Type: text/xml");
    
echo 
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">\n";

$nbrresult=mysql_num_rows($res);
if(
$nbrresult>0)
{
    while (
$row mysql_fetch_row($res))
{
    echo 
"<url><loc>".$row[0]."</loc><changefreq>always</changefreq><priority>0.8</priority></url>\n";
}
}
echo 
"</urlset>";
?>

La règle d'url-rewriting dans le .htaccess

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^sitemap\.xml sitemap.php [L]

Dernières recommandations

La règle d'url-rewriting doit être placée dans le fichier .htaccess à la racine du site.

Le script sitemap.php doit lui aussi être placé à la racine du site.

 
     Copyright © 2007 Thomas Mayor - WebKeySoft  
 
Flux rss webkeysoft.comArticles - News
Licence d'utilisation des logiciels - design by webkeysoft