FriendlyURLGracias a un comentario de @Jose Luis me he dado cuenta que hay un pequeño problema en las funciones de URL Amigables.
Parece que la función friendlyurl() tiene código duplicado que relentíza la ejecución a parte de otros datos que no terminan de hacerla funcionar. Por eso en un momentillo me he puesto a corregirla y aquí tenéis el resultado.

PHP:
  1. function friendlyurl(){
  2.     if($_SERVER['PATH_INFO'] != ''){
  3.         $dir['BASE']    = explode($_SERVER['PATH_INFO'], $_SERVER['REQUEST_URI']); $dir['BASE'] = $dir['BASE'][0]; //deducimos la carpeta actual
  4.         $dir['DATOS']   = substr($_SERVER['REQUEST_URI'], 1+strlen($dir['BASE'])); //dejamos los datos despues de la carpeta actual
  5.         $corte_del_get  = strpos($dir['DATOS'], '?') ? strpos($dir['DATOS'], '?') : null; //determinamos donde comienza el GET si existe (si no null)
  6.         $dir['DIR']  = $corte_del_get ? substr($dir['DATOS'], 0, $corte_del_get) : $dir['DATOS']; //extraemos los datos de variables sin el get
  7.         #validacion de variables
  8.         $dir['DIR']  = substr($dir['DIR'], -1, 1) == DIRECTORY_SEPARATOR ? substr($dir['DIR'], 0, strlen($dir['DIR'])-1) : $dir['DIR']; //'/' al final
  9.         $dir['DIR']  = explode(DIRECTORY_SEPARATOR, $dir['DIR']);
  10.     } else {
  11.         $dir    = array('BASE' => $_SERVER['REQUEST_URI'], 'DATOS' => '', 'DIR' => array());
  12.     }
  13.     return $dir;
  14. }

El método de trabajo sigue siendo el mismo..
Si tenéis algún problema mas o alguna duda solo tenéis que comentármelo.