Indicizzare le pagine dinamiche sui motori

di: Francesco Caccavella     26 Agosto 2002

ASP (Active Server Pages) e IIS

Su pro.html.it, un sito costruito con ASP, viene utilizzata la URL Replacer: indicizzare siti dinamici in ASP messa a disposizione gratuitamente da Antonin Foller, uno sviluppatore cecoslovacco.

Tecnicamente si tratta di un filtro ISAPI che intercetta le chiamate ad un dato url e in base ad alcuni parametri le reindirizza all'indirizzo reale. In superficie, sia gli utenti sia lo spider del motore di ricerca vedranno gli URL riscritti in formato standard (http://pro.html.it/articoli/id_217/idcat_36/pro.html), al web server invece arriverà la richiesta della pagina originale (http://pro.html.it/view_articolo.asp?id=217&idcat=36).

Le istruzioni di installazione fornite con il piccolo software sono chiarissime. Qui ci limitiamo a dire che tutte le riscritture degli URL sono gestite da una comoda interfaccia Web che agisce su un file di configurazione del Web Server. È utile anche sapere che modifiche errate della riscrittura non comporteranno alcuna perdita di dati: l'indirizzo originale sarà sempre raggiungibile.

Su PRO.HTML.it si è proceduto a queste modifiche:

Dopo il simbolo '?' sono stati sostituiti '&' con '/' e '=' con '_'. Dunque l'URL http://pro.html.it/view_articolo.asp?id=217&idcat=36 sarà raggiungibile anche con la scrittura http://pro.html.it/view_articolo.asp?id_217/idcat_36/.

In più sono state aggiunte anche queste condizioni:

  • view_articolo.asp? è stato sotituito con articoli/
  • .asp? è stato sotituito con .asp/

Ogni link presente nelle pagine è stato modificato per puntare al nuovo formato e il sito è stato indicizzato completamente (da Google). Per verificarlo basta fare una ricerca con chiave PRO restringendo i siti al solo pro.html.it e prendere nota delle pagine indicizzate.

PHP (Hypertext Preprocessor) e Apache

In questo caso il discorso si complica. La riscrittura dell'URL viene attivata per mezzo di un'estensione aggiuntiva di Apache chiamata mod_rewrite (URL Rewriting Engine). La difficoltà nell'utilizzo di questa tecnologia non è tanto nella sua installazione (viene fornito con Apache), quanto nella sintassi da utilizzare per la riscrittura. Il mod_rewrite infatti fa uso delle Regular Expression (o Regex), ossia alcune regole di linguaggio utilizzate nella gestione del testo in molti linguaggi di programmazione.

In sintesi si tratta di scegliere alcune regole precise per la riscrittura dell'indirizzo Web. Qui di seguito forniamo un esempio utilizzato il libri.html.it, per chi invece volesse approfondire l'utilizzo delle Regular Expression rimandiamo ad un articolo su Evolt.org e alle pagine delle Regular Expression Library di ASPSmith che contengono anche un motore per la verifica dell'esattezza delle espressioni.

Dunque, su libri.html.it, basato su PHP, Apache e MySQL, gli indirizzi di ogni singolo libro erano di questo tipo

http://libri.html.it/recensioni/viewbook.php?id=66

Dopo la riscrittura i link sono diventati invece:

http://libri.html.it/recensioni/libro/66.html

Per raggiungere questo obiettivo si è utilizzato la seguente Regular Expression:

RewriteRule ^libro/([^/]+).html viewbook.php?id=$1 [L]

Traducendolo in parole umane: qualsiasi cosa che sia simile a libro/(qualsiasi carattere tranne lo slash).html verrà sostituito per il web server con viewbook.php?id=(caratteri precedenti). Importante è notare come l'espressione inclusa tra parentesi tonde viene richiamata nella seconda parte della Regular Expressione dal carattere $1. $ seguito da un numero progressivo richiama infatti tutto ciò che viene incluso in parentesi tonde nella prima parte. Se avessimo avuto un'altra espressione inclusa tra parentesi tonde nella prima parte essa sarebbe stata richiamata da $2 e così via.

Per attivare la riscrittura dell'URL bisogna inserire la seguente sintassi in un file nominato .htaccess da posizionare nella stessa directory (originale) in cui si vorrà attivare la riscrittura. Nel nostro caso il file .htaccess è stato creato con il seguente contenuto

RewriteEngine on RewriteRule ^libro/([^/]+).html viewbook.php?id=$1 [L]

e posizionato nella directory http://libri.html.it/recensioni/

Il Rewrite può essere anche attivato utilizzando la sintassi di cui sopra all'interno del file httpd.conf (il file di configurazione generale di Apache). Questa seconda soluzione è preferibile alla prima perché, oltre a centralizzare tutte le riscritture, rende l'operazione più veloce.

Naturalmente, dopo l'attivazione della riscrittura, andranno modificati tutti i link all'interno del sito per farli puntare alle nuove location.

Un altro metodo per la riscrittura degli URL in PHP è proposto nell'articolo URL dinamici graditi ai motori. L'articolo fa uso della variabile d'ambiente PATH_INFO.

Risolvere il problema senza toccare la configurazione del Server

Per chi utilizza pagine dinamiche e non può intervenire direttamente nella configurazione del web server non resta che affidarsi ad un trucchetto. Come abbiamo detto Google, il motore che ci interessa di più per il posizionamento, indicizza le pagine dinamiche solamente se linkate da pagine statiche. Non ci resta dunque che preparare all'interno del nostro sito alcune pagine statiche con link verso le pagine dinamiche che ci interessa indicizzare. Queste pagine dovranno a loro volta essere linkate da più punti del vostro sito web (magari da tutte le pagine) in modo da essere sempre reperibili dal motore di ricerca.

Seguendo questi consigli, dopo 30/40 giorni dalla loro applicazione vedrete le vostre pagine dinamiche perfettamente indicizzate e gli accessi al vosto sito web accresciuti.

Guide Web marketing

Guida Google Webmaster Tools

Webmaster Tools è uno strumento gratuito messo a disposizione da...

Guida Google Analytics

Percorso pratico per la creazione e gestione di un account...

Guida Google AdWords

Guida alla piattaforma di advertising di Google. Per creare annunci...

Altre guide

Newsletter @Web marketing e SEO

Ogni giovedì, direttamente nella tua e-mail: notizie e articoli sui motori di ricerca rivolte a SEO e Webmaster.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Posizionamento Motori di Ricerca (SEO)

29 Giugno 2012 a Milano
Disponibilità: 5 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Posizionamento Motori di Ricerca (SEO)

19 Giugno 2012 a Roma
Disponibilità: 6 Posti