Programmazione Web » Apache » Mod Rewrite: modificare gli url con Apache

Mod Rewrite: modificare gli url con Apache

Difficoltà: Intermedio Scritto da Alberto Giuliani
Sito Web: http://www.agwebsolutions.it E-Mail
Questo tutorial è stato letto 772 volte




Tramite il modulo mod_rewrite, Apache permette di modificare gli indirizzi URL a nostro piacimento, di modo da risultare funzionali al nostro sito. Infatti, siti web che usassero tecnologie PHP e MySQL spesso si trovano a dover trattare URL dinamici in cui compaiono query di selezione con variabili.

Ad esempio, molto comuni sono gli indirizzi del tipo: "http://www.miosito.com/pagina.php?variabile=xx". In siti più complessi, possono essere presenti URL che trattano più variabili, quindi: "http://www.miosito.com/pagina.php?variabile1=xx&variabile2=xx".

Logicamente non c'è limite al numero di variabili se non quello dettato dal programmatore stesso.

Ora, questa tipologia di indirizzi risulta sicuramente complessa e articolata, tanto che comporta due notevoli svantaggi:

  • E' di difficile memorizzazione da parte dell'utente
  • I motori di ricerca difficilmente inseriscono tali URL nelle loro cache, soprattutto se contengono più di una variabile.

Il nostro obiettivo è quindi quello di far memorizzare all'utente e ai motori degli indirizzi più semplici del tipo www.miosito.com/sezione/pagina.html che il nostro server converta automaticamente negli indirizzi dinamici PHP contenenti le variabili.

Apache offre un metodo molto semplice ed efficace per ovviare a questo problema.

Creiamo un file ".htaccess" e salviamolo nella cartella principale (root) del nostro sito.
NB: ".htaccess" non indica l'estensione del file, bensì il nome e l'estensione assieme. Non dobbiamo quindi assegnare un nome a piacere.

Come secondo passaggio, digitiamo nel file questo codice:

RewriteEngine on

RewriteRule ^tutorials/([^/]+).html tutorial.php?identificatore=$1 [L]

L'esempio riguarda la trasformazione dell'URL: "tutorials/xxx.html" nell'URL: "tutorial.php?identificatore=xxx", dove "xxx" rappresenta una sequenza di caratteri digitata dall'utente e che corrisponde al valore della variabile dell'URL complesso.

Traduciamo ora in un discorso logico il codice dell'esempio. La prima riga attiva il motore di riscrittura. La seconda dice di sostituire qualsiasi cosa simile a "tutorials/(qualsiasi carattere escluso lo slash).html" con "tutorial.php?identificatore=(caratteri digitati)".

Generalizziamo quindi l'esempio:

RewriteEngine on

RewriteRule ^qualcosa/([^/]+).estensione qualcosa.php?identificatore=$1 [L]

Logicamente ".estensione" è facoltativo, e dipende dalle nostre esigenze. Da notare "identificatore=$1" che imposta il valore della variabile alla prima sequenza di caratteri digitata dopo lo slash.

Possiamo quindi complicare la situazione aggiungendo più variabili e sequenze:

RewriteEngine on

RewriteRule ^qualcosa/([^/]+)/([^/]+).estensione qualcosa.php?identificatore=$1&identificatore2=$2 [L]

Ovviamente prima di utilizzare i moduli di Apache è bene segnalarlo al gestore del server che ospita il vostro dominio per evitare di causare eventuali danni al dominio o alla macchina.

Aggiungi questo tutorial ai preferiti! Aggiungi questo tutorial ai preferiti


SEGNALA QUESTA RISORSA AD UN AMICO
Tuo nome
Tua mail
Nome amico
Mail tuo amico
Google
AREA UTENTI
E-MAIL PASSW
Perso la password?
I TUTORIAL PIU' LETTI
GIF ANIMATE
Script Gratis!
Spot

Sito Service
Tutorial per realizzare un sito web partendo da zero e script Asp per Aruba Server.

Tutorials & scripts
Articoli su HTML, CSS, PHP, ASP, Javascript, MySQL a cura di AG web solutions!

Guida Prestiti e Carte di credito
Giochi flash free
Giochi gratis online
Ricette di cucina gratis
Migliori torrent italiani
Notizie Dieta e Diete Alimentari

Cerca con Google