2010-06-13 1 views
0

Я пытаюсь реализовать маршрутизацию в cakephp. Я хочу, чтобы URL-адреса отображались таким образом ...Конфигурация маршрутизации в cakephp

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

Так для этого я написал в моей конфигурации/routes.php файл ..

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

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

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

С уважением Vikram

ответ

2

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

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')); 
} 
+0

Привет там Это уже работает для меня, используя код, который я написал. Его просто проблема URL, отображаемая в адресной строке, которую я ищу. – vikmalhotra

+0

Умм, я видел это happeining. Я не помню, почему, сейчас, но я посмотрю. Вы пытаетесь написать контроллеры? Becouse in your code, которые отсутствуют, тогда интерпретируются как действительный контроллер. – santiagobasulto

+0

Хорошо! Это была проблема. Я не писал контроллер при использовании помощника ссылок, и поскольку у меня был контроллер по умолчанию, установите «узлы», поэтому он отображал контроллер, а также действие в адресной строке. Спасибо чувак. – vikmalhotra

2

В принципе, если ваши ссылки создаются с помощью помощника 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