21 de noviembre de 2012

Habilitar el modulo rewrite de Apache en Ubuntu

El módulo rewrite le agrega al servidor web Apache la posibilidad de re-escribir los requerimientos de URL que recibe desde la internet. La importancia de este módulo es la posibilidad de escribir direcciones amigables (Friendly URL's), que juega un rol desde la perspectiva SEO.
Apache sobre Ubuntu se configura en forma distinta a otros sistemas operativos como las versiones empaquetadas de LAMP sobre windows. Para configurar el módulo rewrite sobre Ubuntu se realiza del siguiente modo:


Configurando el Mod Rewrite de Apache sobre Ubuntu

Primero se verifica si el módulo rewrite existe. Para tal efecto, debemos acceder a la carpeta de los "módulos disponibles de Apache", que corresponde a la carpeta '/etc/apache2/mods-available', ejecutamos el comando:
cd /etc/apache2/mods-available

Buscamos en la carpeta si existe el archivo 'rewrite.load'. Si el archivo existe debemos 'habilitarlo', esto se realiza creando un enlace simbólico en la carpeta '/etc/apache2/mods-enabled'.

Creando el enlace simbólico del módulo Rewrite de Apache

El enlace simbólico puede realizarse usando un comando de Apache específico para esta tarea, se llama 'a2enmod', que resume algo así como Apache2-Enable-Module, la sintáxis en el caso de este módulo (mod rewrite) se debe escribir en el terminal:
sudo a2enmod rewrite

Luego reiniciamos apache:
sudo service apache2 restart

Esto daría la opción de usar el mod rewrite por parte de Apache. Sin embargo, no significa necesariamente que nuestro sitio pueda usarlo, especialmente si estamos usando Virtual Host.

Habilitar el Mod Rewrite desde el Virtual Host

Para garantizar su uso, debemos chequear que el mod rewrite se encuentra habilitado en la configuración del Virtual Host y luego llamarlo desde el archivo '.htaccess'.
El proceso es simple, primero ubicar el archivo que configura el virtual host de nuestro sitio. En ese archivo, cambiar bajo la etiqueta <Directory>, cambiar la directiva 'AllowOverride None' por 'AllowOverride All'. Y luego reiniciar o recargar la nueva configuración para que sea leída por Apache.