2015-07-13 38 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