我嘗試爲頁面控制器創建搜索引擎友好的URL,即而不是/pages/about
。在CakePHP中爲PagesController路由搜索引擎友好的URL
我試圖建立以下途徑(在routes.php文件的底部):
Router::connect('/*', array('controller' => 'pages', 'action' => 'display'));
和
Router::connect('/:page', array('controller' => 'pages',
'action' => 'display'), array('pass' => array('page'), 'page' => '[a-z]+'));
兩者搭配得當,/support
等。然而,失敗當我有一個行動/方法對。例如,/contact
應該路由到PagesController->contact()
。然而,上面的路由到PagesController->display()
。
必須有一種方法可以在不爲每個頁面制定特定路線的情況下完成此操作。我如何創建一條路線或一組路線:
- 模仿 PageController的默認路由行爲。這是路由 要顯示(),除非存在一個動作/方法 對。
- 這樣做與搜索引擎友好的URL。這是從根
/
而不是/pages
。 - 展示兩個
Router::connect()
和Html->link()
我在CakePHP Book檢查例子和觀看其他問題,如CakePHP routing in pages controller。似乎沒有什麼能滿足上述規範。
'/ *'?除了PagesController之外,您還在應用程序中使用其他控制器嗎? – webbiedave
@webbiedave是的。 –
那麼,如果'/ xyz'應該調用'XYZController-> index()'而不是'PagesController-> xyz()',Cake怎麼會知道?這就是爲什麼你必須明確列出頁面不是嗎? – webbiedave