0

我正在尝试在 cakephp 中实现路由。我希望网址像这样映射...

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

所以为此我在我的 config/routes.php 文件中写了..

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

现在,我开始了,但是当我点击链接时,浏览器中的 url 看起来像 www.example.com/nodes/main www.example.com/nodes/about

有什么方法可以让网址按照路由的方式显示?在 .htaccess 或 httpd.conf 中设置很容易 - 但我无权访问它。

问候维克拉姆

4

2 回答 2

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'));
}
于 2010-06-13T19:22:48.203 回答
2

基本上,如果您的链接是使用 Html 助手创建的,格式如下:

<?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

于 2010-06-13T19:45:22.767 回答