Link sponsorizzati

Guida pratica al modulo Rewrite in Apache

Articolo scritto da Claudio Garau
Pagina 1 di 4

1. Introduzione al mod_rewrite di Apache

Il mod_rewrite di Apache è uno dei moduli più utilizzati tra quelli disponibili per questo Web server, in particolare per il fatto di mettere a disposizione dei Webmasters uno strumento che permetta da una parte di creare siti basati su applicazioni web based dinamiche e dall'altra di rendere le pagine prodotte dall'applicazione più "digeribili" per i motori di ricerca.

(L'articolo continua più sotto...)

Ma qual'è la funzione di questo modulo? In pratica il mod_rewrite consente di "tradurre" un'URL in un'altra definita dall'utilizzatore seguendo determinate regole che vanno scritte all'interno del file di configurazione di Apache oppure dentro ad un apposito file, denominato .htaccess, che andrà uploadato all'interno della root del nostro sito web (anche l'upload di questo file deve essere effettuato seguendo determinati criteri, ma approfondiremo questo discorso tra breve).

Un caso classico di utilizzo del mod_rewrite è quello relativo alla traduzione di URL statiche in dinamiche; badate bene che questo concetto è fondamentale, infatti il modulo non nasce per trasformare indirizzi dinamici (contenenti querystring) in statici, bensì per il contrario! Il motore di ricerca ed i nostri utenti vedranno una URL di tipo statico (pippo.html), ma in realtà la risorsa esiste sotto un indirizzo dinamico (pagina.php?id=pippo).

Per far questo scriveremo la nostra regola di traduzione all'interno del file .htaccess e uploaderemo quest'ultimo nel percorso desiderato (cioè quello per cui sono valide le regole di rewrite); da quel momento in poi per le pagine coinvolte avverranno i seguenti passaggi per il nostro Web Server:

  • i clients richiederanno di accedere ad una determinata risorsa digitando un'URL nella barra degli indirizzi del browser (nel nostro caso pippo.html);
  • il Web server (naturalmente Apache), riceverà l'input e controllerà se il percorso specificato è valido per la risorsa richiesta;
  • la pagina pippo.html non esiste, quindi la richiesta in linea teorica non dovrebbe essere soddisfatta;
  • ma ecco che il Web server cercherà istruzioni sul da farsi e le troverà all'interno del file .htaccess;
  • comprese le regole indicate all'interno del file, il Web server tradurrà l'indirizzo digitato in quello reale e restituirà la risorsa desiderata.
Leggendo i passaggi previsti dalla procedura di "traduzione" delle URL , sarebbe possibile confondere questo modulo con altri a disposizione in Apache come per esempio quello per il redirect, col rewrite però non stiamo redirezionando il percorso di una richiesta ad una risorsa ma "mascherando" il percorso stesso; quindi l'URL utilizzata dal client in realtà non sarebbe un percorso valido all'interno del server e potrebbe anche non esserlo mai stato, cosa che invece accade nel caso dei redirects.

Ma perchè mascherare un'URL? Oggi come oggi i motivi vanno ricercati in fattori che spesso non attengono ad argomenti strettamente tecnici o relativi allo sviluppo delle applicazioni.

Inizialmente il mod_rewrite era nato per ovviare al problema delle URL troppo lunghe da digitare, capitava infatti (e spesso capita ancora) che per raggiungere una detrminata risorsa si dovessero digitare querystring strapiene di variabili e di relativi parametri; il rewrite consente di eliminare questo problema grazie alla possibilità di mettere a disposizione dei clients URL più user friendly.

Oggi il rewrite è diventato invece un argomento molto importante per operazioni riguardanti il posizionamento delle pagine Web nei motori di ricerca.
E' noto infatti che questi ultimi non indicizzano in modo efficiente le pagine raggiungibili con querystring troppo lunghe o troppo ricche di parametri, questo fattore può limitare la capacità di posizionamento di una risorsa all'interno delle SERP.
In pratica possiamo affermare che ciò che è user friendly per gli utenti lo è anche per i motori di ricerca.

Nella stessa categoria...
E-Learning
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 49 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 39 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Link sponsorizzati