El tema de las Urls Amigables (friendly urls) esta relacionado con el SEO y el posicionamiento Web en los diversos buscadores algo que se a hablado hasta el cansancio, los métodos de poder construirlas son como los colores ( para todos los gustos ).
En la actualidad las Urls Amigables (friendly urls) no es una simple moda Web 2, si no que en sistemas de gestión de contenidos y servicios prestigiosos como Blogger, Drupal, Wordpress y muchos más lo tienen implementado. ¿Pero cual es el mejor? ya de por si se sabe que implementando Urls Amigables en tus paginas o proyectos Web estas a 2 o 3 pasos arriba que otras paginas que usan las Urls tradicionales muy aparte de la publicidad o herramientas de posicionamiento que usen.
Al principio no todos podían usar Urls Amigables en sus sitios, mucho dependía de tener activado el mod_rewrite , aun que WordPress fue un paso mas allá y nos dio una solución como nos comentaba Andres Nieto a principios de año desconozco si WordPress fue el pionero en esto.
En el posicionamiento Web 2 de los mejores son Blogger y Wordpress por el método que usan aunque este ultimo con la opción de personalizar la estructura de la url a nuestro gusto por ser una herramienta de construcción de blogs de codigo abierto que a permitido que crezca gracias a la comunidad que lo rodea.
Las hasta 3 formas mas conocidas de construir las Urls Amigables es mediante PATH_INFO, mediante directivas en el archivo .htaccess como nos explica manu en TuFunción o mediante peticiones $_GET como nos enseña William Wong Garay en MaestrosDelWeb.
Todos estos métodos construyen Urls Amigables pero tienen sus limitaciones.
- PATH_INFO no se puede expandir la estructura de Urls Amigables
- mod_rewrite y .htaccess mientras mas directivas se ralentiza el servidor
- Metodo $_GET limite del numero de variables a enviar como explica Willy
¿Cual método usa Wordpress? si observamos su archivo .htaccess solo utiliza unas directivas simples.
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
El archivo clave es wp-includes/rewrite.php (WP_Rewrite API) el encargado de identificar las peticiones que se hacen en el sistema.
¿Pero como trabaja? muy simple con reglas muy similares a las que se usan en el .htaccess con diferencia que estas se procesan en un archivo php y acelerando el proceso.
¿Pero como implementarlo en una pagina que no sea WordPress? ... destripando el codigo he logrado desarrollar una clase muy básica basada en WP_Rewrite API que nos permitirá personalizar la estructura de las Urls amigables al estilo Wordpress.
Pueden verlo en funcionamiento en http://web2dev.calinsoft.com/urls-amigables .
El funcionamiento es básico la regla esta compuesta de una Expresion Regular y la marca que vendría hacer los parámetros a usar.
/// para poder obtener una estructura /2008/08/28/urls-amigables-facilmente
$this->rules["([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/(.+?)/?$"]="y=$matches[1]&m=$matches[2]&d=$matches[3]&nslug=$matches[4]";
//la cual mediante una identificación y parseo previo obtendríamos los valores listo para usarlos segun lo deseemos
Array
(
[y] => 2008
[m] => 08
[d] => 28
[nslug] => urls-amigables-facilmente
)
Los interesados pueden comentar si creen que es un buen método, tratare de afinar el script y lo publicare en estos días para mis lectores de Feed tendrán una sorpresa.

Jugando con WP_Rewrite API y las URL’s amigables | aNieto2K
September 1st, 2008 hace 2 años y 2 días
[...] Wordpress incluye una API muy interesante con la que podemos crear URL’s amigables para nuestro blog. Esto que además de ser beneficioso para nuestro SEO nos proporciona un valor añadido en cuanto a calidad del sitio y un toque estético que nos distingue de los demás. Carlos Montalvo nos muestra como usarla en este pequeño tutorial. [...]