Конфигурация маршрутизации в CakePhp
-
27-09-2019 - |
Вопрос
Я пытаюсь внедрить маршрутизацию в CakePhp. Я хочу, чтобы URL-адреса отображались как это ...
www.example.com/nodes/main -> www.example.com/main www.example.com/nodes/about -> www.example.com/about
Так что для этого я написал в моей конфигурации / маршрута.
Router::connect('/:action', array('controller' => 'nodes'));
Теперь я получил дело, но когда я нажимаю на ссылки, URL в браузере появляется как www.example.com/nodes/main www.example.com/nodes/about
Есть ли какой-то, где я могу получить URL-адреса, чтобы появиться, как они направляются? Настройка в .htaccess или httpd.conf было бы легко - но у меня нет доступа к этому.
С уважением Викрам
Решение
Это должно работать:
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'));
}
Другие советы
В основном, если ваши ссылки создаются с HTML-помощником, со следующим форматом:
<?php echo $this->Html->link('your link', array('controller'=>'nodes', 'action'=>'main'));?>
Тогда торт будет правильно преобразовать ссылки на www.example.com/main
Но если ваши ссылки
<?php echo $this->Html->link('your link', '/nodes/main/');?>
Они будут указывать на www.example.com/nodes/main