我尝试为页面控制器创建搜索引擎友好的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