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
SALUT I LLIBERTAT