In questo articolo vedremo come mettere in piedi una delle tecniche ultimamente più gettonate sul web: la riscrittura degli url delle pagine dinamiche che le rendono più facilmente "digeribili" dai motori di ricerca.
Vediamo come configurare ISAPI_Rewrite, un filtro ISAPI commerciale, tuttavia disponibile anche gratuitamente, nella sua versione Lite. La differenza sostanziale tra le due versioni è il numero di siti che possiamo gestire: con la versione Lite possiamo gestire un solo sito mentre con la versione completa non abbiamo limiti. Per approfondire le differenze è consigliabile consultare il sito ufficiale).
Una delle più rilevanti caratteristiche di questo software è la capacità di leggere ed interpretare regole di rewriting da file testuali creati secondo gli standard delle espressioni regolari (regular expressions). Per questo il suo utilizzo risulta piuttosto semplice a coloro che possiedono un minimo di esperienza con linguaggi come JavaScript o a coloro che hanno avuto a che fare con i file di configurazione di Apache. I parametri di ISAPI_Rewrite, infatti sono molto simili ai comandi impiegati per gestire il mod_rewrite di Apache.
Un'altra caratteristica che porta ISAPI_Rewrite nella top-ten dei software di questo genere è la velocità, favorita senza dubbio dal fatto che l'interpretazione dell'url in ingresso avviene in un unico passaggio, evitando inutili loop. Ad influenzare la rapidità di esecuzione c'è anche il cache system implementato in questo software. Più richieste identiche vengono servite in un tempo nettamente inferiore a quello necessario per interpretare un pari numero di richieste rivolte però a pagine differenti. Quindi una pagina molto richiesta gode di una velocità di trasferimento al client piuttosto notevole.
Un altro fattore da valutare quando ci si appresta a implementare un sistema di questo genere all'interno della propria infrastruttura Web è la scalabilità, in stretto legame con la sicurezza del proprio sito. Tramite ISAPI_Rewrite è possibile personalizzare una configurazione sito per sito, in modo da rendere disponibile un utilizzo ad-hoc per ogni sito/applicazione/portale sul nostro web server.
Installazione e configurazione
ISAPI_Rewrite comprende una procedura di setup semplice ed intuitiva. Scegliamo l'installazione automatica e la routine di installazione svolgerà il suo compito in pochi istanti. Lasciamo l'installazione manuale ai più smaliziati, in quanto la procedura di default non necessita di ulteriori interventi al fine di ottenere un sistema perfettamente funzionante.
Per quanto riguarda la configurazione del filtro ISAPI, utilizziamo l'apposita applicazione che provvederà a creare/modificare il file httpd.ini (responsabile della configurazione del prodotto) al posto nostro.
Esempi di utilizzo
Esaminiamo alcuni casi pratici di utilizzo del filtro.
Simulazione di hostname-based hosting
Situazione: abbiamo registrato due domini: sito1.com
e sito2.com
. Grazie a ISAPI_Rewrite è possibile ospitarli contemporaneamente sullo stesso sito fisico. Codice da utlizzare per httpd.ini:
[ISAPI_Rewrite]
#Assicuriamoci che non manchi la slash alla fine dell'url in ingresso
RewriteCond Host: (.*)
RewriteRule ([^.?]+[^.?/]) http://$1$2/ [I,R]
#Emulazione sito1.com
RewriteCond Host: (?:www.)?sito1.com
RewriteRule (.*) /sito1$1 [I,L]
#Emulazione sito2.com
RewriteCond Host: (?:www.)?sito2.com
RewriteRule (.*) /sito2$1 [I,L]
A questo punto basterà inserire il contenuto dei due siti nelle sottocartelle sito1/
e sito2/
. Altrimenti sarà possibile utilizzare uno script più generico che effettuerà lo stesso procedimento su qualsiasi sito, liberandoci della necessità di definirlo nel file di configurazione:
[ISAPI_Rewrite]
#Check per lo slash alla fine dell'url
RewriteCond Host: (.*)
RewriteRule ([^.?]+[^.?/]) http://$1$2/ [I,R]
RewriteCond Host: (www.)?(.+)
RewriteRule (.*) /$2$3
Server cambiato da poco
Situazione: abbiamo appena cambiato server. Si presenta la necessità di un aggiornamento globale dei links. Ecco il codice da utlizzare per httpd.ini:
[ISAPI_Rewrite]
RewriteRule (.+) http://www.nuovoserver.com$1 [R]
File "robots.txt" generato dinamicamente
Situazione: vogliamo generare di volta in volta il contenuto del robots.txt
, file responsabile dei comandi passati ai motori di ricerca nel momento in cui il loro spider indicizza il nostro sito.
Codice da utlizzare per httpd.ini:
[ISAPI_Rewrite]
RewriteRule /robots.txt /robots.asp
Chiaramente bisognerà poi creare il file robots.asp con un contenuto simile al seguente:
<%
Response.ContentType "text/plain"
Response.Write "comandi per il file robots.txt"
%>
Blocco del linkaggio non autorizzato
Situazione: la bandwidth di cui disponiamo viene quotidianamente divorata da webmaster senza scrupoli che utilizzano le immagini sul nostro server per loro scopi personali.
Codice da utlizzare per httpd.ini:
[ISAPI_Rewrite]
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://1.*).*
RewriteRule .*.(?:gif|jpg|png) /blocco_hotlinking.gif [I,O]
Conclusione
Si tratta sicuramente di uno dei tanti prodotti disponibili sul mercato per questo scopo. In ogni caso è uno dei più diffusi ed utilizzati proprio a causa della semplicità di utilizzo e delle enormi potenzialità di cui dispone. Per favorire l'indicizzazione del vostro sito è opoprtuno provvedere al più presto a modificare gli url in quanto, soprattutto negli ultimi 2 anni, i search engines hanno sviluppato la tendenza di ignorare quelle pagine dinamiche che passano parametri nella querystring (es. www.ilmiosito.it/pagina.asp?codice=3
).