在CodeIgniter中重新路由页面时,如何防止重复内容?

Dis*_*oat 3 routing controller codeigniter

假设我有一个控制器,"文章",但我希望它显示为子文件夹(例如"博客/文章"),我可以添加这样的路线:

$route['blog/articles'] = 'articles';
$route['blog/articles/(:any)'] = 'articles/$1';
Run Code Online (Sandbox Code Playgroud)

这工作正常,现在唯一的问题是,example.com/articles并且example.com/blog/articles都使用Articles控制器,因此解析为相同的内容.有办法防止这种情况吗?

为了让人们不理解,可以增加一点清晰度:

  • 在这个例子中,我没有'博客'控制器,但我希望'文章'等似乎在该子文件夹中(这是组织的事情).
  • 我可以有一个带有"文章"功能的博客控制器,但我可能会有一堆"子控制器",并希望将功能分开(否则我最终可能会为博客控制器中的单独实体提供30多个功能) .
  • 我想example.com/articles返回404,因为那不是正确的URL,example.com/blog/articles是.

Phi*_*eon 6

把它推到你的控制器:

function __construct()
{
    parent::Controller();

    $this->uri->uri_segment(1) == 'blog' OR show_404();
}
Run Code Online (Sandbox Code Playgroud)