Scheda articolo

Mod Rewrite: come creare URL user-friendly


commenti Inserito il: 30 marzo 2009 in Apache Linux | commenti Commenti (1)
 

INTRODUZIONE

Il mod_rewrite è un modulo di Apache, che consente di creare indirizzi statici (URL) in base a delle semplici regole impostate all'interno di un file .htaccess.
Questa tecnica si rivela particolarmente utile ad esempio per trasformare delle url complesse e poco chiare in url semplici, leggibili e facilmente interpretabili dai motori
di ricerca, soprattutto da Google.
Il risultato è duplice:
- nel lato "pratico" otteniamo una migliore indicizzazione sui motori di ricerca
- nel lato "estetico" una miglior chiarezza nella lettura dell'indirizzo della pagina e l'eliminazione delle interminabili url dinamiche.
 
In pratica possiamo rendere user-friendly tutte le url delle pagine da noi utilizzate dinamicamente (semplici pagine informative, elenchi di prodotti, ecc...)
Quando richiamiamo pagine dinamiche (ad esempio in php) alle quali passiamo dei parametri utilizziamo quella che viene definita una "querystring".
Ad esempio in una url come questa:
http://yoursite.com/products/items.php?action=product1
 
Fare in modo che una pagina venga visualizzata come una cartella o sottocartella anzichè con una url con querystring consente ai motori di ricerca (Google in particolare) 
di indicizzare meglio la nostra pagina.
Ad esempio una url che porterà ad un determinato prodotto sarà più indicizzabile ed efficace se trasformata da così:
http://yoursite.com/products/items.php?action=product1
a così:
http://yoursite.com/products/productname
Il motore di ricerca chiaramente preferirà la seconda url dove possono essere incluse parole chiave che risulteranno meglio interpretate dal suo algoritmo con il risultato
di far salire nel ranking la vostra pagina.
 

IN PRATICA

Il modulo mod_rewrite è attivo praticamente di default su ogni sistema Apache.
Se così non fosse è possibile attivarlo abilitando il "Rewrite Engine" di Apache
Aprire il file di configurazione di Apache (httpd.conf, si trova in /apache/conf/)
Andare nella sezione "Dynamic Shared Object (DSO) Support"
decommentare (togliere il simbolo #) da:
LoadModule rewrite_module modules/mod_rewrite.so
e più in basso togliere il commento a:
AddModule mod_rewrite.c
A questo punto occorrerà iavviare Apache per rendere effettive le modifiche.
 
Veniamo finalmente al dunque e vediamo come scrivere il nostro file .htaccess al fine di trasformare le nostre URL.
Innanzitutto dobbiamo crearci un file .htaccess che andrà poi salvato e caricato nella root del sito inserendo questo comando:
RewriteEngine On
Avendo le seguenti Url da voler rendere più utilizzabili:
- http://yoursite.com/pages/about.html
- http://yoursite.com/products/services.php
- http://yoursite.com/products/services.php?action=product1
- http://yoursite.com/pages/contact.html
 
RewriteEngine on
RewriteRule ^about/$    /pages/about.html [L]
RewriteRule ^products/$  /products/items.php [L]
RewriteRule ^productname/$  /products/items.php?action=product1 [L]
RewriteRule ^contact/$  /pages/contact.html [L]
In questo mododa adesso digitando http://yoursite.com/about/ si verrà reindirizzati sulla pagina /pages/about.html, digitando http://yoursite.com/contact/ sulla pagina /pages/contact.html, ecc...
 
I caratteri speciali utilizzati sono:
^ indica l'inizio dell'URL
$ indica la fine dell'URL
[L] per non far testare a mod_rewrite le regole successive ed per impedire ad Apache di consumare inutilmente risorse del sistema.
alla fine serve ad indicare che le regole non sono finite per cui a capo ce ne sarà un’altra, il [L] non verrà quindi messo per l’ultima regola.
 
Utilizzando le regular expressions, è possibile reindirizzare anche url più complesse.
Ad esempio far si che la url di un mio particolare prodotto diventi così:
http://www.ilmionegoziodiscarpe.com/articoli/running
avendo come url di partenza una cosa come questa qui sotto:
http://www.ilmionegoziodiscarpe.com/articoli.php?nomeprodotto=running
volendo allo stesso tempo scrivere una regola che valga sempre per ogni tipo di prodotto potrò scrivere la seguente regola:
 
RewriteRule    ^articoli/([A-Za-z0-9-]+)$    articoli.php?nomeprodotto=$1 [L]
In pratica Apache sostituirà il valore $1 con la parte contenuta tra le parentesi tonde che in questo particolare caso indica una qualsiasi combinazione di numeri e lettere.
 
 

CONCLUSIONI E LINK

Abbiamo analizzato solo una parte di quello che si può fare con il modulo mod_rewrite di Apache.
Una volta capito il funzionamento lo si può applicare anche ad url più articolate e non solo.
 
Link utili per approfondire l'argomento:
Rewrite Flags
Cheat sheet
 
Tools utili:
Per chi non volesse scrivere totalmente in modo manuale il file .htaccess, questo pratico editor online:
http://www.htaccesseditor.com/en.shtml
mod_rewrite RewriteUrl Generator (generatore automatico del codice corretto da inserire nel file .htaccess per trasformare Url dinamiche in Url user-friendly):
http://www.webmaster-toolkit.com/mod_rewrite-rewriterule-generator.shtml
URL Rewrite (mod_rewrite), generatore di url dinamiche per motori di ricerca:
http://www.linkvendor.com/seo-tools/url-rewrite.html

Condividi


OkNotizie Facebook Twitterdeliciousbadzurss2
Rating: 2.0/5 (79 voti)

1 Commenti

commenti Gigi (2009-04-14 02:30:22)
commenti ottimo articolo!

TOP

Commenta

 
 
 

Categorie

Apache - (1)

Browser - (1)

Code - (2)

CSS - (3)

HTML - (1)

JQuery - (1)

Linux - (1)

PHP - (2)

Tools - (1)

Tutorials - (1)

Web Design - (2)

Web development - (1)

Web Marketing - (1)


Ultimi Post

Come creare un contatore stile Twitter

L'allineamento dei campi in un form

Rendere pił efficace un form

Evidenziare un codice d'esempio

Google Maps & Phoogle Mods


Cos'è babita

BabitaMedia è un team di professionisti che sviluppa applicazioni web customatizzate per il marketing Online.
Realizziamo strumenti che consentono l'interazione degli utenti con altri utenti o con il brand.
Nello specifico si occupa dello studio e della progettazione di:

Web applications: siti dinamici, piattaforme PHP e MySQL

Database management: analisi dati, normalizzazione, pulizia dati

Grafica: web design, banner, print advertising

Scarica la presentazione
Download (.pdf 2.2MB)
 

Twitter

Twitter

Follow us on Twitter


Contattaci

t:+39 02 86 99 60 24

Scarica la nostra vCard (.vcf)

Rss Feed

Journal rss 2.0