Decíamos que la parte con el (+.) quiere decir cualquier carácter o conjunto de caracteres. Además, con este "comodin" se puede construir la url_destino. Fijémonos en la segunda parte del RewriteRule:
codigo/ver_articulo.php?nombre=$1
Simplemente se ha indicado otra dirección donde hay un archivo PHP que se va a encargar de procesar todas las URLs que cumplan el patrón explicado anteriormente. Si nos fijamos, dentro de la url_destino tenemos un $1. Esta variable se sustituye por lo que había dentro del (+.) indicado en el patrón de la expresión regular.
Por ejemplo, una url de esta forma:
www.dominio.com/articulos/plantas-medicinales.php
Se procesará en la dirección:
www.dominio.com/codigo/ver_articulo.php?id=plantas-medicinales
Si nos fijamos, la URL de destino realiza el paso de parámetros, para que todos los artículos se procesen en el mismo archivo, indicando en la dirección algo que sirva para identificar inequívocamente el artículo que se desea ver. Sin embargo, ese paso de parámetros se realizará internamente y de manera transparente para el usuario que estará teniendo la impresión que la URL que está procesando es la original que ha escrito en la barra de direcciones del navegador.
Como se ha visto, el $1, extraído de la URL original en la parte del patrón de la expresión regular que se corresponde con el (+.), se utiliza para construir la URL que se va a encargar de procesar la página.
Vemos un segundo caso de redirección de URLs amigables a buscadores hacia URLs con paso de parámetros.
En algunas ocasiones no basta con enviar un parámetro para que la página reciba todos los datos que necesita para mostrar los contenidos específicos.
Si en la expresión regular tuviéramos otros (+.) entonces en la url_destino tendríamos que utilizar $1 para el primer (+.) que haya en la expresión regular y $2 para el segundo, $3 para el tercero y así sucesivamente.
Por ejemplo, aquí podemos ver una sentencia RewriteRule que utiliza dos partes con (+.) para hacer el patrón.
RewriteRule ^agenda/(.+)/(.+).html codigo/cita.php?mes=$2&anio=$1
Esta expresión regular quiere decir: Cualquier URL que comience por "agenda/", seguida de cualquier cosa, luego una barra y cualquier otra cosa, acabado en ".html" (fijarse la contrabarra antes de ".html" que es un carácter de escape para indicar que el "." de antes de "html" es un punto, en lugar del codigo especial que suele significar cualquier caracter. Ver el artículo anterior para más explicaciones sobre las expresiones regulares de este estilo.
Como se puede ver, las direcciones estáticas amigables a buscadores no tienen por que finalizar en .php. En este caso finaliza en .html, pero podría acabar de cualquier otra forma, como .htm, .php3, .shtml o en un directorio.
En el caso del ejemplo anterior, una dirección con esta forma:
www.dominio.com/agenda/2006/7
Se hará corresponder con una url_destino así:
www.dominio.com/codigo/cita.php?mes=7&anio=2006
Aunque también podrían haber concordado otros modelos de direcciones como:
www.dominio.com/agenda/05/01
www.dominio.com/agenda/2006/marzo
Será nuestra responsabilidad hacer el tratamiento para que sólo las URL que queremos muestren la página correcta. Veremos en el proximo capítulo cómo hacer este tratamiento de posibles errores y cómo resolver otros posibles problemas del uso del htaccess.
Autor: Desadollo Web
http://www.desadolloweb.com
Usuarios que han visto este tema también han visto...
- RSS y Sindicación
- Diez formas de matar buenas ideas
- Rastreo de información: Como aplicarlo en la Web
- E-Marketing 101: Dinámicas Aplicadas
- Lo que no se debe hacer con un ordenador
- Versión imprimible de este documento
- Enviar por e-mail este documento