2015-07-13 47 views
1

我正在使用蛋糕的PHP和由于某种原因,我想隐藏控制器和操作名称从网址。当前URL我们像我可以隐藏控制器和视图名称蛋糕php 2吗?

http://192.168.1.31/home/this_is_test

家在哪里控制器名称和this_is_test是蛞蝓是动态的。我想要的网址像

http://192.168.1.31/this_is_test

我的routes.php文件是

Router::connect('/', array('controller' => 'home', 'action' => 'index')); 
Router::connect('/dashboard', array('controller' => 'dashboard', 'action' => 'index')); 
Router::connect('/login', array('controller' => 'users', 'action' => 'login')); 
Router::connect('/admin/login', array('controller' => 'users', 'action' => 'login', 'admin' => true)); 
Router::connect('/contents/*', array('controller' => 'contents', 'action' => 'view')); 
Router::connect('/home/*', array('controller' => 'Home', 'action' => 'index')); 

我已经google搜索后读一对夫妇的解决方案。也在routes.php中试过这个。但没有运气

Router::connect(
    '/:query', 
    array('controller' => 'Home', 'action' => 'index',1), 
    array('query' => '[a-zA-Z]+') 
); 

有人有这方面的想法,如果有可能?

回答

1

您的解决方案

对于静态文本试试这个:

Router::connect('/this_is_test', array(
     'controller' => 'home', 
     'action' => 'this_is_test OR any_other action name' 
)); 

如果它是动态

Router::connect('/:id', 
    array('controller' => 'home', 'action' => 'index'), 
    array(
     'pass' => array('id'), 
     array('id' => '[A-Za-z]') 
    ) 
); 

References: Cakephp2.x Route

我希望我知道你真正想要达到的目标。您可以将路线放置在最后位置。 Here is the reference

其他选项将为您的控制器使用别名。所以你可以给你的控制器打电话,为你的控制器设置一个新名字,然后在你的路由中调用它。

如果这不起作用,那么你需要编写一个定制的组件来帮助你做到这一点。

+0

'this_is_test'是动态的。意味着可以是任何术语A-Z – MKD

+0

然后使用正则表达式或创建一个可以从DB中查找块的段塞路由。阅读本章http://book.cakephp.org/3.0/en/development/routing.html它就在那里。 – burzum

+0

工作,但不是如预期的那样。其他控制器停止工作。所有的控制器都重定向到home/index – MKD