Mod_rewrite es un módulo de apache que reescribe las URLs de nuestra página web para hacerlas amigables a los buscadores.
Como funciona
Mod_rewrite se ejecuta despues de realizar un request al servidor pero antes de cualquier scripts, en ese momento el módulo realiza una serie de filtros sobre la url y la reescribe. Claro que esto es transparente para el usuario que accede al sitio y no puede ver nada de lo que esta ocurriendo.
Por ejemplo:
http://www.mostofreddy.com.ar/aprende-a-usar-rewrite-y-htaccess-8682.html
el mod_rewrite lo transformará a
http://www.mostofreddy.com.ar/index.php?id=8682
Como lo configuramos
Para configurar rewrite en nuestros sitios basta con seguir estos 5 simples pasos
1) Primero debemos habilitar el módulo si no esta habilitado
sudo a2enmod rewrite
2) Verificamos que AllowOverride este como All para el DocumentRoot correcto. Para ello accedemos a este achivo y modificamos los datos
sudo vim /etc/apache2/sites-enabled/000-default
3) Reiniciamos apache
sudo /etc/init.d/apache2 restart
4) Accedemos a phpinfo() para verificar que este correctamente habilitado
5) Creamos un archivo llamado .htaccess en el root del proyecto y agregamos todas las reglas que querramos
6) Listo!
En próximo post explicaré como crear las reglas en el archivo .htaccess
