Mod Rewrite. Direcciones Estáticas

Ejemplos de algunas reglas para la reescritura de urls mediante el módulo de apache Mod Rewrite. Convertir direcciones dinámicas a urls estáticas.

Mod Rewrite de Apache

El Mod Rewrite es un módulo para el servidor Apache que sirve para reescribir las direcciones url. En este artículo se han seleccionado algunos ejemplos de reglas que suelen ser habituales. Estas reglas se deben guardar en el archivo .htaccess del directorio de nuestra web.

La página se ha movido temporalmente

Esta regla es muy útil cuando queremos cambiar la dirección de una página temporalmente.

RewriteRule ^web.php$ nuevapagina.php [R,NC,L]

^ indica que es el inicio de una cadena
$ indica el fin de la cadena.
R significa que se redireccionará hacia la página destino.
NC no importan las mayúsculas o minúsculas (case insensitive).
L quiere decir que es la última regla (A veces se pueden definir grupos de reglas).

Reescribir Urls

Esta regla sirve para que apache convierta direcciones estáticas a dinámicas, útil para la indexación de nuestros sitios en los buscadores.

RewriteRule ^([a-zA-Z0-9\-]+)/?$ script.php?parametro=valor&nombre=$1 [L,NC]

([a-zA-Z0-9\-]+) significa que se acepta cualquier palabra que contenga esos caracteres o números.
/? significa que la barra (/) es opcional, y también se aceptaría una url sin este caracter
Todas las direcciones que cumplan con esta regla se dirigirán a la dirección especificada script.php...
$1 es el valor del primer parámetro.

Ejemplo de Paginación con Mod Rewrite

Este ejemplos es muy parecido al anterior. Es el caso en que tenemos que paginar resultados y queremos que nuestras direcciones url también sean estáticas.

RewriteRule ^([a-zA-Z0-9\-]+)/([0-9]+)/?$ script.php?parametro=valor&nombre=$1&numpagina=$2 [L,NC]

([0-9]+) significa que sólo se aceptan números.
$2 es el valor del segundo parámetro.