2014-07-10 64 views
0

我有我的CakePHP的路由器設置像這個 -如何使用CakePHP

Router::connect('/*', array('controller' => 'posts', 'action' => 'p'));

這導致在動態URL www.example.com/創建動態網址一樣www.example.com/x22bh1 x22bh1被路由到www.example.com/posts/p/x22bh1

不過我認爲喜歡www.example.com/aboutuswww.example.com/register諸如此類其他URL也排到www.example.com/posts/p/*這是一個意外的行爲。現在要解決這個問題我可以定義一個基於正則表達式的路由器。但爲了達到這個目的,我需要指定所有我不希望路由的異常頁面。那麼有沒有一種方法可以讓這兩個功能在路由器中一個接一個地指定所有異常頁面的情況下工作?就像如果有一個控制器和URL的操作,那麼不要路由,但如果沒有,然後去默認的控制器/操作?

www.example.com/x22bh1 =>控制器x22bh1沒有發現這樣的路線www.example.com/posts/p/x22bh1

www.example.com/register =>控制器register用行動index發現,所以還是默認頁面www.example.com/register/index

+0

這樣的事情http://stackoverflow.com/questions/14090951/how-to-generate- secure-private-urls-in-cakephp – CoolLife

回答

0
Router::connect('/register',array('controller'=>'register','action'=>'index')); 
Router::connect('/aboutus',array('controller'=>'aboutus','action' =>'index')); 
# Blind rule 
Router::connect('/*', array('controller' => 'posts', 'action' => 'p')); 

所有其他路線必須高於這個盲目的規則,否則所有的url都會在post的控制器的動作中解決。手段除了定義的路線所有的URL將解決在P的行動控制器和序列的重要性,正如我前面所說...

+0

@ Anubhav-你沒有很好地閱讀我的問題。我想要的是不要在路由器中一個接一個地指定所有例外頁面,例如('/ register','/ aboutus'),並使其全部正常工作。 – Killswitch