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


Is it possible to hide ALL default routes in CakePHP?

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

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

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

如果我理解正确,请从APP/routes.php(仅Cake 2.x)中删除require

/**
 * 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';

禁用默认路由,假设您已经完全自定义了所有其他路由。

确保搜索引擎和用户不会查看您不希望他们查看的内容的最佳、最合适和稳健的解决方案是阻止对那些您希望保护的控制器和操作的访问。

如果不希望访问/posts/view,请将该方法设为私有方法,或删除该方法。如果您希望它只对某些用户可访问,那么您需要在操作之前检查授权和身份验证(可能在beforeFilter中)。