me encontré con un comentario aquí: http://bakery.cakephp.org/articles/PHPdiddy/2006/10/06/custom-urls-from-the-site-rootCakePHP Nombre de usuario URL usando Regex?
Dicho esto:
Sólo cambia última línea.
Router :: connect ('/ ', array ('controller' => 'members', 'action' => 'show'));
a
Router :: connect ('?!. (Administrador | artículos | imágenes) ( *)', array ('controller' => 'miembros', 'action' => 'show'));
Algunas personas fueron capaces de conseguir que funcione ... No parecía del todo bien a mí, sin embargo lo que he intentado lo siguiente, pero todavía no tuvo suerte:
Router::connect('(?!/admin|/items|/images)(/.*)',
array('controller' => 'members','action' => 'show'));
En cualquier caso , el objetivo es tener una url como http://domainname/username, asignar a una identificación única de usuarios. Funciona con/*, pero prefiero no usar ese método. Ideas?
Actualización a la solución: Utilicé la respuesta seleccionada a continuación y agregué lo siguiente. Puede ser útil para otra persona.
$misc = array(*your misc webroot, admin route items here...*);
$notList = array_merge(Configure::listObjects('plugin'),Configure::listObjects('controller'));
$notListLowerCase = array();
foreach ($notList as $key=>$item):
$notListLowerCase[] = strtolower(preg_replace("/(.)([A-Z])/","\\1_\\2",$item));
endforeach;
$notList = array_merge($notList,$misc,$notListLowerCase);
$notList = implode('|', $notList);
Router::connect('/:username',
array(
'controller'=>'users',
'action'=>'view'
),
array(
'username' => '\b(?:(?!'.$notList.')\w)+\b'
)
);
Gracias !! Funcionó perfectamente. Agregué información adicional a la pregunta usando tu solución para que no necesites escribir todos los nombres de los controladores, etc. – Parris