> Manuales > Taller de PHP

Forma de hacer que las url tengan un buen aspecto, sin que aparezcan todos los parámetros que se pasan por la url.

Una de las dificultades que se presenta cuando utilizamos URL dinámicas, es decir que envías valores a través del método GET; Radica en el momento cuando los robots que navegan por toda la red recopilando información de diferentes índole, ingresan a nuestro sitio Web y se consiguen con parámetros que ellos no admiten en el mayor de los casos.

Por ejemplo tenemos esta url: http://localhost/index.php?cat=4&subcat=45&id=4566
En este caso la mayoría de los indexadores no admitirían más de 1 solo parámetro y harían caso omiso a los caracteres: ( & ? = # ) siguientes. Entonces ya dependería de nuestro PageRank si esa url es indexada a los principales motores de búsqueda.

Sin embargo existe una forma que “DIFRAZA” la url, por decir alguna palabra, sin modificar la funcionalidad de nuestra página; editando el archivo .htaccess que debe ubicarse al comienzo de cada directorio.

Debemos agregar las siguientes líneas:

<? RewriteEngine on
RewriteRule ^.*$ index.php
?>


Donde index.php, es nuestro archivo principal del directorio a mostrar.

Ahora volviendo al ejemplo anterior, ya podríamos llamar la url de la siguiente forma:
http://localhost/4/45/4566

Ya no tendremos ningún problema con los motores de búsqueda. Ahora nos queda una tarea sumamente sencilla.
¿Como extraer esos valores que se almacenan en esa url?

Ciertamente $REQUEST_URI, nos devuelve todo el fragmento o path físico de la url actual. Lo siguiente seria utilizar una función que nos permita dividir esa url; utilizando la / (Barra) como punto de referencia, pudiese ser con explode() que nos devuelve una matriz con las cada una de las partes.

Código Fuente:

<? PHP
$aux = substr( $_SERVER['REQUEST_URI'], strlen('/'));
if( substr( $aux, -1) == '/'){
  $aux=substr( $aux, 0, -1);
}
$urlARRAY___ =explode( '/', $aux);

/////////////VALORES A UTILIZAR
$CATEGORIA=$urlARRAY___[0];
$SUBCATEGORIA=$urlARRAY___[1];
$ID=$urlARRAY___[2];
?>

Hemos publicado un Manual de .htaccess para la creación de URL amigable donde podrás ampliar la información de configuración de htaccess.

Emmanuel García De Caro

Webmaster de Blasten.com

Manual