Вопрос

Я пытаюсь внедрить маршрутизацию в 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top