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.