martes, 24 de julio de 2012

URLs amigables con Apache y mod_rewrite

Con Apache y su modulo mod_rewrite (en un post anterior Activar mod_rewrite explique como activarlo), podremos conseguir, de forma relativamente sencilla, la creación de URLs amigables.

Una vez activado mod_rewrite, crearemos un fichero .htaccess en el cual incluiremos las instrucciones necesarias para conseguir las URLs amigables. Primero pongo un ejemplo y a continuación su explicación:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?page=$1&id=$2&$3 [L,NC]
</IfModule>


En  primer lugar lo que se hace es activar el uso de mod_rewrite. A continuación, crearemos una regla de cómo se tiene que hacer la transformación de nuestra URL a una URL amigable con RewriteRule. En el ejemplo, nuestra regla transformará una URL tal que www.midominio.com/index.php?page=home&id=18&titulo en www.midominio.com/home/18/titulo.

El primer parámetro de la URL quedará representado en la regla por $1, el segundo por $2, el tercero por $3 y así sucesivamente según todos los parámetros que necesitemos en nuestra URL. La regla formateará el valor de los parámetros sustituyendo por un – todos aquellos caracteres que no sean una letra o un número (esto se consigue a través de la expresión regular ([a-zA-Z0-9_-]+)/([ ). Esto mismo lo haremos con los otros dos parámetros del ejemplo.

Esta regla que hemos creado para mod_rewrite podemos modificarla según nuestras necesidades y la complejidad de la URL amigable que deseemos construir.

No hay comentarios :

Publicar un comentario