Reescritura de mods de Apache
mod_reescribir es un módulo de apache que permite reescribir las URL solicitadas por el cliente antes de que apache obtenga las páginas.
Por ejemplo, www.site.com/products.php?code=459 se puede escribir como www.site.com/products/459 o www.site.com/products/459.html.
Mod_rewrite reescribe la segunda URL en la primera utilizando las reglas de reescritura especificadas en el archivo .htaccess.
Habilitar reescritura de mods
Para habilitar el módulo mod_rewrite use el comando a2enmod.
$ sudo a2enmod rewrite
Para deshabilitar este módulo:
$ sudo a2dismod rewrite
Habilitar .htaccess
Luego edite el archivo:
/etc/apache2/sites-enabled/000-default
Busque la sección :
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </directory>
Reemplace AllowOverride None con AllowOverride FileInfo como:
<directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride FileInfo Order allow,deny allow from all </directory>
Ahora reinicie apache
$ sudo /etc/init.d/apache2 restart
Reglas de Htaccess de prueba
Ahora coloque un archivo .htaccess en la carpeta digamos /var/www/ para probar la reescritura del mod
Para probar si mod_rewrite funciona o no, llene el archivo .htaccess con un poco de texto basura y luego abra algún archivo de esa carpeta en el navegador.
Debería obtener un error interno del servidor 500 y un error .htaccess en el archivo de registro de apache. Esto muestra que ahora mod_rewrite está habilitado.
Ahora ponga algunas reglas de reescritura en el archivo .htaccess
RewriteEngine on RewriteRule ^([0-9]+).html$ index.php?id=$1
que debería reemplazar una carpeta/23.html a carpeta/index.php?id=23 por ejemplo.
Enlaces y recursos
Para obtener más detalles e instrucciones sobre cómo configurar la reescritura de mods y escribir las reglas de htaccess, consulte la página oficial de documentos. Algunos de los enlaces se dan a continuación:
1. Reescritura de la modificación de Apache 1.3
2. http://httpd.apache.org/docs/1.3/howto/htaccess.html
3. http://httpd.apache.org/docs/1.3/configuring.html#htaccess
4. http://httpd.apache.org/docs/2.2/howto/htaccess.html
5. http://wiki.apache.org/httpd/DistrosDefaultLayout