是否可以在CakePHP中隐藏所有默认路由?

时间:2012-09-04 23:57:48

标签: php cakephp routing routes

我发现路由引擎在CakePHP中非常有用,文档概述了如何“禁用默认路由”,指的是vanilla安装中存在的两个(一个用于 home 页面显示,另一个用于 / pages 路径下的任何其他页面显示。

禁用这些似乎不会禁用其他路由。例如,仍然可以通过 / posts / posts / view / 1 等访问帖子模型,而我希望隐藏所有这些默认视图来自公开,仅允许特定内容显示在我选择的路线中。

如果我的配置保持打开默认路由,搜索引擎可以为同一内容索引两个页面吗?如果没有,我仍然不喜欢公众想出一个页面的核心路线,并能够通过非公开但仍可访问的URL访问它。

2 个答案:

答案 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中)。