CakePHP URL中的远程控制器名称

时间:2011-04-11 11:00:49

标签: php cakephp

我的网址重写有问题。

我面临的问题是目前我们的网址是这样的:

http://www.xyz.com/sc_users/index

我不希望控制器名称显示在该网址中。

有没有办法实现这个?

首先,谢谢你们......

就像我有8个控制器一样,我不希望控制器名称显示在我的网址中......这就是我想要的......

更确切地说,我的网址中没有控制器名称

3 个答案:

答案 0 :(得分:1)

您可以在app/config/routes.php中定义自定义路线。您可以在Defining Routes下的CakePHP食谱中找到所有关于路线的信息。例如,自定义路径可能如下所示:

Router::connect(
    '/the_url_you_want_to_use/*', array('controller' => 'sc_users', 'action' => 'index')
);

答案 1 :(得分:0)

您需要阅读CakePHP routing,查看“定义路线”下的示例。用你真正想要的网址来更新你的问题,我们将能够更有效地帮助你。

答案 2 :(得分:0)

这很简单: / config目录中有一个名为routes.php的文件: 你可以像这样在网址上重写网页:

Router::connect('/pages/*', array('controller' => 'cmsPage', 'action' => 'render'));

您可以将更复杂的变量传递给控制器​​:

Router::connect('/:id-:lang-:profile-:firstName-:lastName-:profile.htm',
    array('controller' => 'profiles','action' => 'view'),
    array('id'=>'[0-9]*', 'lang'=>'fr','firstName'=>'[^-]*','lastNAme'=>'[^-]*','profile' => $util->keywords['profiles'][0]['fr'], 'pass' => array('id', 'lang'),'profile' => $util->keywords2['profiles'][0]['en'])
)

正如您在上一个示例中所看到的,我通过'pass'=>将2个参数传递给控制器数组('id','lang')