Pregunta

Estoy tratando de poner en práctica el enrutamiento en CakePHP. Quiero que las direcciones URL asignada a como este ...

www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about

Así que para este he escrito en el archivo de configuración / routes.php ..

Router::connect('/:action', array('controller' => 'nodes'));

Ahora, tengo la cosa va, pero al hacer clic en los enlaces, la dirección URL en el navegador aparece como www.example.com/nodes/main www.example.com/nodes/about

¿Hay alguna manera donde puedo conseguir las direcciones URL que aparecen la forma en que se encaminan? Configuración de .htaccess o httpd.conf sería fácil -. Pero no tienen acceso a ese

Saludos Vikram

¿Fue útil?

Solución

Esto debería funcionar:

Router::connect('/main', array('controller' => 'nodes', 'action' => 'main'));
Router::connect('/about', array('controller' => 'nodes', 'action' => 'about'));

También puede hacer algo más potente, así:

$actions = array('main','about');
foreach ($actions as $action){
   Router::connect('/$action', array('controller' => 'nodes', 'action' => '$action'));
}

Otros consejos

Básicamente, si sus enlaces se crean con HTML ayudante, con el siguiente formato:

<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?>

La torta convertirá los enlaces correctamente a www.example.com/main

Pero si sus enlaces son

<?php echo $this->Html->link('your link', '/nodes/main/');?>

que apuntará a www.example.com/nodes/main

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top