1

我正在为 Codeigniter 中的一个附带项目编写博客。我的博客将包含三个模块。

我需要知道该怎么做,例如:

  • example.org -> 显示所有带有 module3 主题的帖子
  • example.org/module1 -> 仅显示带有 module1 主题的 module1 帖子
  • example.org/module2 -> 仅显示带有 module2 主题的 module2 帖子
  • example.org/module3 -> 仅显示带有 module3 主题的 module3 帖子

任何想法如何在 URL 模式中处理这个问题?(路由)

4

2 回答 2

3

你可以做一个简单的切换:

class Post extends CI_Controller{

function index($module = null)
{
   switch($module)
   {
      case NULL:
      case 'module3':
        //load theme 3
      break;
      case 'module1':
        //load theme 1
      break;
      case 'module2':
        //load theme 2
      break;     
  }

}

在您的路线中:

$route['default_controller'] = "post";
$route['(:any)'] = "post/index/$1";

如何实现不存在的案例现在取决于您,这只是一个开始。此外,":any" 路由是一个可以抓取任何url 的包罗万象的路由,因此您需要排除(通过将它们放在要重新映射的任何其他路由之前。或者您可以查看_remap()在您的控制器中使用的功能

于 2012-12-18T18:57:46.610 回答
0

您可以修改 CI 的核心,但我认为您最好使用 RewriteRule。

于 2012-12-18T18:46:58.763 回答