Activar mod_rewrite en Apache

Básicamente, existen dos formas de expresar una dirección web, la dirección real con sus correspondientes parámetros (de la forma dominio.com/index.php?var1=15&var2=pepe&var3=caracola), o bien en un formato más legible y semántico (de la forma dominio.com/mi-primera-pagina). Esta segunda forma es llamada habitualmente «URL amigable«.

Además, las ventajas de las URLs amigables no sólo residen en su mejor legibilidad por los usuarios y en que son más fáciles de recordar o de apuntar, sino que también mejoran el posicionamiento en buscadores, al contener palabras clave que ayudan a una mejor indexación por parte de los buscadores.

Para poder utilizar URLs amigables en el servidor web Apache tenemos que activar el módulo mod_rewrite.

Vamos a ver el caso concreto de una instalación Apache en un servidor Linux Ubuntu.

Para activar el módulo mod_rewrite en Apache, abrimos un terminal y ejecutamos:

sudo a2enmod rewrite

… lo que activará el módulo mod_rewrite en nuestra instalación de Apache (a2enmod es una abreviatura de «Apache 2 enable module»). Lo que hace este comando es apuntar el módulo mod_rewrite (en /etc/apache2/mods-available) desde /etc/apache2/mods-enabled

Seguidamente, para permitir que mod_rewrite sea aplicable al contenido de nuestro servidor web, tenemos que editar el siguiente archivo de configuración de Apache:

sudo gedit /etc/apache2/sites-enabled/000-default

… cambiando el parámetro AllowOverride None por AllowOverride All en los directorios donde queramos que se apliquen las URLs amigables.

Ahora ya sólo nos quedaría reiniciar Apache, haciendo:

sudo /etc/init.d/apache2 force-reload