我发现路由引擎在CakePHP中非常有用,文档概述了如何“禁用默认路由”,指的是vanilla安装中存在的两个(一个用于 home 页面显示,另一个用于 / pages 路径下的任何其他页面显示。
禁用这些似乎不会禁用其他路由。例如,仍然可以通过 / posts , / posts / view / 1 等访问帖子模型,而我希望隐藏所有这些默认视图来自公开,仅允许特定内容显示在我选择的路线中。
如果我的配置保持打开默认路由,搜索引擎可以为同一内容索引两个页面吗?如果没有,我仍然不喜欢公众想出一个页面的核心路线,并能够通过非公开但仍可访问的URL访问它。
答案 0 :(得分:3)
如果我理解正确,请从require
移除APP/routes.php
(仅限Cake 2.x)
/**
* Load the CakePHP default routes. Remove this if you do not want to use
* the built-in default routes.
*/
//require CAKE . 'Config' . DS . 'routes.php';
禁用默认路由,假设您已完全自定义所有其他路由。
答案 1 :(得分:0)
确保搜索引擎和用户不会查看您不希望他们查看的内容的最佳,最合适和最强大的解决方案是阻止访问您想要保护的控制器和操作。
如果您不想访问/posts/view
,请将该方法设为私有,或删除该方法。如果您只希望某些用户可以访问它,那么您需要在操作之前检查授权和身份验证(可能在beforeFilter中)。