La tecnica dell’URL Rewriting

Tutti i portali dinamici hanno il problema dell’indicizzazione delle pagine dinamiche nei motori di ricerca a causa dell’URL dalla struttura complessa.

Per fare un esempio, un indirizzo dinamico tipo;

page.php?cat=news&cod=5

viene indicizzato dai motori con una certa difficoltà rispetto ad uno statico come:

page.html

Non è una regola vera e propria ma più che altro si tratta di un certo disorientamente che gli spiders dei motori accusano quando trovano caratteri come ‘&’, ‘?’ oppure ‘=’ nell’indirizzo della pagina. Come conseguenza le pagine con un indirizzo normale vengono indicizzate maggiormente rispetto a quelle dinamiche, e più di frequente.

Per ovviare a questo inconveniente esiste una tecnica chiamata url rewriting, vale a dire fare in modo che il server "riscriva" in maniera "statica" indirizzi dinamici.

La messa in opera di questa tecnica varia in base alla tecnologia dei sistemi e non è di semplice attuazione ma richiede tempo, attenzione e molta esperienza, ed in caso di portali vasti può richiedere la pianificazione di un vero proprio progetto dedicato. Negli esempi ci occuperemo di tecnologia Apache/php.

Per avere modo di utilizzare questa strategia è necessario utilizzare il modulo "mod_rewrite" di apache che ci consente di "sostituire" gli indirizzi di pagina digitati dagli utenti con indirizzi di sostituzioni calcolati attraverso una sintassi basata sulle Regular Expression (Regex). Sorvoliamo ovviamente sulla sintassi regex in quanto è alquanto ostica, ma in caso vogliate approfondire vi rimandiamo alla pagina http://www.evolt.org/article/rating/20/22700/.

Mantenendoci su esempi semplici supponiamo di voler trasformare l’indirizzo;

http://www.ikaro.net/articoli/articolo.php?file_name=url_rewriting

in

http://www.ikaro.net/articoli/cnt/url_rewriting.html

Dovremmo utilizzare la seguente configurazione del mod_rewriting;

1) RewriteEngine on
2) RewriteRule /articoli/cnt/([^/]+).html /articoli/articolo.php?file_name=$1 [L]

La prima riga attiva il modulo di rewriting, la seconda fa in modo che l’indirizzo dinamico a destra venga sostituito con un indirizzo statico che utilizzarà il vaolre del parametro "filename" per dare un nome alla pagina, pagina che in realtà, non esiste.

Queste due righe possono essere inserite;

a) in un file .htacces nella directory in cui si vuole abilitare questa funzionalità
b) nel file di configurazione httpd.conf (ma richiede privilegi di superuser)

Da notare che la pagina con indirizzo statico in realta non esiste, è solo un alias che il server riconosce per fare in modo che i motori vedano una pagina "normale" al posto di una pagina dinamica, e far si che venga indicizzata normalmente.

Il vero url della pagina che stai leggendo non è quello che appare nella barra degli indirizzi, ma è:

http://www.ikaro.net/articoli/articolo.php?file_name=url_rewriting

Se ti è stato utile potrebbero interessarti anche: