Конфигурация маршрутизации в cakephp - PullRequest
0 голосов
/ 13 июня 2010

Я пытаюсь реализовать маршрутизацию в CakePHP. Я хочу, чтобы URL отображались вот так ...

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

Итак, для этого я написал в своем файле config / rout.php ..

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

Теперь у меня все получилось, но когда я нажимаю на ссылки, URL в браузере выглядит как www.example.com/nodes/main www.example.com/nodes/about

Есть ли какой-нибудь способ, которым я могу заставить URL отображаться так, как они маршрутизируются? Настроить в .htaccess или httpd.conf было бы легко, но у меня нет доступа к этому.

С уважением Викрам

Ответы [ 2 ]

2 голосов
/ 13 июня 2010

В основном, если ваши ссылки создаются с помощью Html helper, в следующем формате:

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

Тогда Cake должным образом преобразует ссылки в www.example.com/main

.

Но если ваши ссылки

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

они будут указывать на www.example.com/nodes/main

2 голосов
/ 13 июня 2010

Это должно работать:

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

Вы также можете сделать что-то более мощное, например:

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