Question

Je suis en train de mettre en œuvre le routage dans CakePHP. Je veux que les urls à cartographié comme ça ...

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

Donc, pour cela je l'ai écrit dans ma config / routes.php ..

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

Maintenant, je suis la chose va, mais quand je clique sur les liens, l'URL dans le navigateur apparaît comme www.example.com/nodes/main www.example.com/nodes/about

Y at-il une certaine façon où je peux obtenir les urls apparaître la façon dont ils sont acheminés? Mise en .htaccess ou httpd.conf serait facile -. Mais je n'ai pas accès à cette

Cordialement Vikram

Était-ce utile?

La solution

Cela devrait fonctionner:

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

Vous pouvez aussi faire quelque chose de plus puissant, comme ceci:

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

Autres conseils

En gros, si vos liens sont créés avec aide Html, avec le format suivant:

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

Ensuite, le gâteau convertira les liens correctement www.example.com/main

Mais si vos liens sont

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

ils pointera vers www.example.com/nodes/main

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top