Filtro sulle stringhe per la riscrittura delle URL
Come molti di voi ormai sapranno, le tecniche di ottimizzazione per i motori di ricerca sconsigliano, al fine di ottenere una miglior indicizzazione del sito, l'utilizzo di pagine web con querystring, essendo al nostro scopo molto più efficaci dei comuni file fisici oppure URL riscritte ad hoc col sistema della URL Rewriting.
In questo articolo vedremo come gestire dinamicamente la trasformazione dei nostri contenuti (notizie, articoli, schede di prodotti, ecc.) in modo da creare (o simulare) file fisici ottimizati per una migliore resa sui motori di ricerca.
Per fare un esempio concreto poniamo di dover ottimizzare un portale di notizie sportive e, giusto per ricordare momenti felici, torniamo al 2006 quando la Nazionale Italiana vinse i Mondiali di calcio, giorno in cui il nostro ipotetico portale avrebbe certamente pubblicato una notizia con un titolo del genere:
Italia campione del Mondo: Cannavaro alza la Coppa!Un sito dinamico scritto in ASP avrebbe potuto utilizzare un file che, con querystring, avrebbe reperito dal database l'ID della notizia; ad esempio:
/notizia.asp?id=100ma, come abbiamo detto, sarebbe stato molto meglio un file fisico tipo:
italia-campione-del-mondo-cannavaro-alza-la-coppa.aspChe questo file sia realmente esistente o sia una semplice simulazione (URL Rewriting) in questo momento non è rilevante: il nostro scopo è semplicemente quello di prendere il titolo della notizia e trattarlo in modo da renderlo conforme alle specifiche ISO sulla scrittura delle URL, dato che un file con un nome tipo:
Italia campione del Mondo: Cannavaro alza la Coppa!.aspsarebbe piuttosto bruttino, ma soprattutto non conforme!
Allo scopo possiamo creare una funzione, includerla nel file di configurazione del nostro sito ed utilizzarla come filtro per trattare come conviene il titolo, onde scrivere per bene il nome del file.
La funzione che esamineremo è piuttosto completa e contempla tutti i caratteri speciali della tastiera italiana, le lettere accentate e quant'altro; utilizza inoltre il trattino (-) come separatore.
Segue il codice completo:
<%
Function FileName(FN)
FN = Replace(FN, " ", "-")
FN = Replace(FN, "_", "-")
FN = Replace(FN, "à", "a")
FN = Replace(FN, "è", "e")
FN = Replace(FN, "ì", "i")
FN = Replace(FN, "ò", "o")
FN = Replace(FN, "ù", "u")
FN = Replace(FN, ".", "")
FN = Replace(FN, ",", "")
FN = Replace(FN, ":", "")
FN = Replace(FN, ";", "")
FN = Replace(FN, "!", "")
FN = Replace(FN, "?", "")
FN = Replace(FN, "'", "")
FN = Replace(FN, """", "")
FN = Replace(FN, "(", "")
FN = Replace(FN, ")", "")
FN = Replace(FN, "[", "")
FN = Replace(FN, "]", "")
FN = Replace(FN, "{", "")
FN = Replace(FN, "}", "")
FN = Replace(FN, "/", "")
FN = Replace(FN, "\", "")
FN = Replace(FN, "|", "")
FN = Replace(FN, "£", "")
FN = Replace(FN, "$", "")
FN = Replace(FN, "%", "")
FN = Replace(FN, "&", "")
FN = Replace(FN, "+", "")
FN = Replace(FN, "@", "")
FN = Replace(FN, "*", "")
FN = Replace(FN, "=", "")
FN = Replace(FN, "#", "")
FN = Replace(FN, "<", "")
FN = Replace(FN, ">", "")
FileName = LCase(FN)
End Function
%>
Per testare la funzione si provi a stampare a video una frase qualsiasi che contenga una serie di caratteri che siamo andati a gestire.
Ad esempio:
<%
Response.Write FileName("Ciao, come stai?")
%>
restituisce:
ciao-come-staiA seconda delle nostre esigenze, quindi, potremo creare dinamicamente il file fisico sul nostro spazio web o, semplicemente, gestire il tutto con un sistema di URL Rewriting avendo cura di scrivere regole di rewriting conformi all'operare della nostra funzione.







