Sitemap dinamico
21/05/2013Uno degli elementi importanti da fornire ai motori di ricerca per l'indicizzazione di un sito è il sitemap, file che elenca gerarchicamente tutte le pagine del sito web.
Introdotta da Google con il servizio Google Sitemaps, e poi utilizzata anche da Yahoo! e MSN, ci permette di inserire all’interno di un file XML tutti gli URL delle pagine del nostro sito da sottoporre al motore di ricerca.
Per costruire un sitemap che si aggiorni automaticamente ad ogni inserimento di contenuto dobbiamo ricorrere ad un piccolo artifizio, usufruendo delle potenzialità di configurazione del server web attraverso il file .htaccess (server web Apache).
Inserendo nel nostro hatccess la riga
RewriteRule ^sitemap.xml ./sitemap.php [L,QSA]
semplicemente indichiamo al server web che la chiamata del file xml va redirezionata sul corrispondente file php, permettendoci quindi di costruire un sitemap che ad ogni chiamata interroga il database per rilasciare un elenco aggiornato dei contenuti del sito.
Il file php, a sua volta, dovrà produrre un risultato corrispondente al fomato xml con protocollo regolamentato dalla Attribution-ShareAlike Creative Commons License.
Un breve esempio di un ipotetico file php è questo (nell'esempio si suppone che il link all'articolo sia semplicemente composto dal titolo dello stesso):
header('Content-Type: text/xml');
echo '
';
include('connessione.php'); // inclusione del file di connessione al db
$data_oggi = (date('Y-m-d'));
$base_url = 'https://www.miodominio.it/';
// costruiamo il record corrispondente alla root
echo '
' . $base_url . '
' . $data_oggi . '
';
// costruiamo i record corrispondenti ai contenuti dinamici
$risultato = mysql_query("SELECT * FROM nometabella order by nomecampodata DESC"); // query di estrazione contenuti
if (!$risultato) { exit ('
Errore recupero i dati' . mysql_error() . '
'); }
while ($riga = mysql_fetch_array($risultato))
{
$tit = $riga[1]; // valore di array da impostare secondo struttra db
$dat = $riga[3];
// valore di array da impostare secondo struttra db
$data = date("Y-m-d",$dat);
$titolo = strip_tags($tit); // è opportuno effettuare anche un controllo della stringa in modo da ripulirla e renderla uguale al link reale
echo "";
echo "$base_url$titolo.php";
echo "$data";
echo "";
}
// terminato il ciclo di estrazione dinamica impostiamo i link alle pagine statiche
echo '
' . $base_url . 'contatti.php
' . $data_oggi. '
';
echo ''