Per raons d’indexar millor les nostres pàgines en els cercadors o per fer-ne publicitat més fàcilment ens pot interesar tenir  adreces de Internet (URL’s) amigables . S’ha de tenir en compta que els gestors de continguts (CMS’s)  ja incorporen sistemes per fer-ho i no es necessita fer res d’això que s’explica a continuació sino que ja ho fan de manera automatitzada.

Així doncs, per exemple, una adreça del tipus:

https://www.ub.edu/tecnicweb/index.php?id=23&order=asc&item=32&cat=33

ens podria interesar accedir a ella com

https://www.ub.edu/tecnicweb/adreces_amigables

Per fer això, utilitzarem un fitxer .htaccess i definirem el que s’anomena una regla de reescriptura. El fitxer .htaccess l’haureu de crear vosaltres. Al directori on coloquem aquest fitxer, i als subdirectoris que en pengin, s’aplicarà el la regla que es defineixi .

Així per exemple per fer una regla per l’exemple anterior, el fitxer .htaccess haurà de tenir el següent:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule  ^adreces_amigables index.php?id=23&order=asc&item=32&cat=33

La primera línea (RewriteEngine on) activa el sistema de reescriptura de URLs.

Amb la segona línea (RewriteCond %{REQUEST_FILENAME} !-f) obliguem a que si un fitxer o una carpeta existeix com tal es farà servir aquell fitxer o carpeta en comptes de fer qualsevol acció .

La tercera línea (RewriteRule  ^adreces_amigables index.php?id=23&order=asc&item=32&cat=33) és la que crea realment l’adreça amigable. Es basa en expresions regulars, que és una forma de expresar una condició o patró en una cadena (en aquest cas, el nom de la URL a cargar) per a què si la cadena encaixa en el patró realitzar una acció concreta (en aquest cas, redirigir a un fitxer). Les expresions regulars són un mon ric i complex del que podeu trobar més informació a http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular

Així doncs, amb l’exemple anterior, escriure

https://www.ub.edu/tecnicweb/adreces_amigables

sería equivalent a escriure

https://www.ub.edu/tecnicweb/index.php?id=23&order=asc&item=32&cat=33.

Encara que en el servidor no existeix físicament ni un fitxer ni una carpeta amb el nom adreces_amigables, retornarà el resultat de la pàgina generada per la ruta que hem indicat.

Al definir les expresions regulars podem definir també patrons que capturarem per a pasar com a paràmetre al fitxer indicat. Així per exemple, amb aquesta regla:

Rewriterule ^noticia/(.+) index.php?modulo=noticias&id=$1

l’adreça

https://www.ub.edu/tecnicweb/noticia/22

sería equivalent a escriure

https://www.ub.edu/tecnicweb/index.php?modulo=noticias&id=22 .

Podeu trobar més informació al respecte i més exemples en el web d’Apache.