URL amigables

Apache HTTP Server

 

Tots hem vist aquestes famoses URL amigables, on amb llegir el link que ens proporcionin, podem entendre del que tracta o diu el títol de la publicació, no es el mateix  http://roig.sytes.net/materra/category/energia/reciclar-imfraciclat-i-supraciclat on cada contingut que tinguem entre les diagonals, són paràmetres que s'envien al servidor en lloc de tindre algo com http:/roig.sytes.net/?p=123&s=456&w=789?p=123&s=456&w=789w=789?p=123&s=456&w que no sabem de què ens van a parlar en la publicació.

Per això s'usa el mod_rewrite que és un mòdul d'Apache que permet modificar el que apareix a la barra de direcció, es necessita tindre activat aquest mòdul per poder utilitzar diverses aplicacions (com WordPress, Joomla...), si és que volem tindre aquestes boniques URL.

Vegem com activar-lo en Debian i Ubuntu (mentre sigui Apache2). Des de la nostra consola o terminal, escrivim el següent en la línia de comandes ...

~# a2enmod rewrite

per desactivar el mòdul  $ sudo a2dismod rewrite

El comando a2enmod (és una abreviatura d'Apache2 Enable Module) activa mòduls que es trobin en el directori /etc/apache2/mods-available i mitjançat un enllaç simbòlic els passa al directori /etc/apache2/mods-enabled.

 

La directiva AllowOverridedel del Virtual Host

La directiva AllowOverride indica si pot o no ignorar qualsevol de les Options per les declaracions en un arxiu .htaccess. Quan el valor d'aquesta directiva és None, llavors els fitxers .htaccess són ignorats completament. En aquest cas, el servidor ni tan sols intentarà llegir els arxius .htaccess existents. Quan el valor especificat en aquesta directiva és All, llavors qualsevol directiva que tingui Context .htaccess pot ser usada als fitxers .htaccess.

Ara el que segueix és modificar l'arxi del Virtual Host on volem que s'aplique el rewrite. En aquesta part podem definir si volem que s'apliqui el rewrite per a tots (a l'arxiu  000-default),  o definir individualment  quins host desitgem que el tinguen. En aquest cas sera per a tot el que estiga dins del nostre server, ens dirigim al directori /etc/apache2/sites-enabled/ i allà ha d'haver un arxiu anomenat 000-default, l'obrim amb vi o nano jo utilitzare nano ...

~# nano /etc/apache2/sites-enabled/000-default

 
ServerAdmin webmaster@localhost
 
 
DocumentRoot /var/www
 
Options FollowSymLinks
AllowOverride None
 
 
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
 
 
 
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
 
 
 
ErrorLog ${APACHE_LOG_DIR}/error.log
 
 
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
 
 
CustomLog ${APACHE_LOG_DIR}/access.log combined
 
 

 

Ací busquem en les línies la directiva on diu AllowOverride None i les canviem per AllowOverride All ...


ServerAdmin webmaster@localhost

DocumentRoot /var/www

Options FollowSymLinks
AllowOverride All


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all


ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

 

finalment reiniciem el servei de l'Apache amb alguna de les següents opcions...

~# sudo /etc/init.d/apache2 restart

~# service apache2 restart

~# /etc/init.d/apache2 reload

~# /etc/init.d/apache2 force-reload

 

Llest ... ara pots gaudir de poder tenir aquestes flamants URL amigables.

El resultat del que en aquest post (creat pel roig a inforoigpv) hem vist, està posat en practica i funcionant. a la Guia Viva (Live) Servidor Debian multi-serveis, a casa teva.

Salutacions

 

 

Apache Server

SALUT I LLIBERTAT