Come (e perché) riscrivere gli URL con mod_rewrite di Apache
Con il termine Friendly URL (spesso abbreviato con FURL) si intende un indirizzo chiaramente leggibile, identificabile, memorizzabile dal visitatore, ma anche chiaro e indicativo per i motori di ricerca.
Procediamo con ordine.
Diamo per scontata la familiarità con gli url dinamici tipo:
http://guide.dev2web.org/?pageid=23
Questo tipo di url non è particolarmente “amichevole” per il visitatore: oltre all'indirizzo del sito, va identificato il nome del parametro (pageid) e il suo valore (23). URL come quello in esempio sono decisamente poco eleganti e difficilmente memorizzabili dai visitatori del sito... ma non è questo il problema più grosso.
E' stato più volte provato quanto gli url statici siano più graditi ai motori di ricerca e quanto sia importante che siano descrittivi della pagina quando si lavora sul posizionamento.
Nel 2008 Google ha pubblicato un interessante articolo intitolato Dynamic URLs vs. static URLs
che chiarisce la posizione dell'ormai popolarissimo motore di ricerca e per riflesso quella di tutti gli altri.
Google suggerisce che molti spider dei motori di ricerca non amano gli url dinamici tanto quanto quelli statici.
Qualche anno fa (come già scritto qui) i motori di ricerca indicizzavano soltanto la pagina principale, tralasciando ogni qualsivoglia parametro. Col tempo e con il crescere dell'uso di linguaggi server-side la mancata indicizzazione di indirizzi di questo tipo, oggi, è un difetto appartenente solo ai motori di ricerca scadenti.
La versione statica o friendly del precedente indirizzo è qualcosa tipo:
http://guide.dev2web.org/contatti
Uso di mod_rewrite
Vediamo come poter ottenere un buon indirizzo usando la tecnica di rewrite dell'url usando mod_rewrite, un'estensione del server web Apache.
Il mod_rewrite funziona tramite uno speciale file di testo, .htaccess che può contenere svariate le regole. Esaminiamo quelle necessarie per ottenere la riscrittura dell'url con un esempio:
#Attiva il Rewrite Engine RewriteEngine on #Verifica che quello che cerchiamo non sia un file esistente RewriteCond %{REQUEST_FILENAME} !-f #Verifica che quello che cerchiamo non sia una directory esistente RewriteCond %{REQUEST_FILENAME} !-d #Verifica che il file non sia index.php per evitare problemi di loop RewriteCond %{REQUEST_URI} !^index\.php$ #Forza la regola ai soli file .html reindirizzando il tutto alla index.php RewriteRule (.+)*\.html index.php?p=$1 [QSA,L] #Note: QSA=Query String Append;L=Last, ultima regola
Questo insieme di regole riscrive gli url che terminano con .html nella relativa forma dinamica, del tutto trasparente a chi naviga il sito, sia esso un visitatore che un motore di ricerca.
Il caso analizzato è piuttosto semplice. E' possibile trovarsi nella condizione di dover riscrivere indirizzi destinati a più pagine dinamiche, avendo così un insieme di regole di rewrite molto più complesso.
Il sistema di riscrittura degli url va progettato parallelamente alla struttura gerarchica del sito.
Per maggiori informazioni potrete consultare la documentazione ufficiale di Apache.
-
» 2011-06-20
L'importanza dell'attributo alt nelle immagini -
» 2011-06-01
Come (e perché) riscrivere gli URL con mod_rewrite di Apache -
» 2010-07-28
URL rewrite e i Motori di ricerca -
» 2010-05-05
Ottimizzare i metatag delle pagine multilingua
Se ti piace questo articolo, puoi collegarlo al tuo sito copiando il seguente codice HTML nelle tue pagine.
-
30-06-2011 → Anonimo
ha scritto un commento in
Tutorial sul ripristino di GRUB -
26-05-2011 → Bianca
ha scritto un commento in
Arrotondare gli angoli di un div usando i CSS 3 -
25-05-2011 → `wee`
ha scritto un commento in
Le landing page - Cosa sono e a cosa servono -
19-02-2011 → Anonimo
ha scritto un commento in
Linux Reference - Lista comandi utili per Linux -
06-01-2011 → Sergio
ha scritto un commento in
Ottimizzare i metatag delle pagine multilingua -
05-06-2010 → Anonimo
ha scritto un commento in
SQL - Data Manipulation Language - SELECT
Inserisci un commento: