CodeIgniter 路由:我是否需要为每个单独的页面创建一个条目


CodeIgniter Routes: do I need to make an entry for each individual page?

在我的CodeIgniter安装中,我的路由文件当前是:

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//routes
$route['about']              = 'page/view/about';
$route['(:any)']             = 'page/view/$1';
$route['default_controller'] = "page/view";

我的问题是 - 每次有新页面时都需要进行新的$route调用,还是有没有办法自动调用?我的page控制器将用于我的静态页面...首页关于、联系方式常见问题解答等

是否需要指定每个静态页面?

这也可能导致我到达代码的注册部分。如何自动为用户提供自己的路由?

谢谢

避免为每个页面手动设置路由的一种方法是创建一个页面控制器并将所有 uri 路由到此控制器。

路线.php:

// Default controller
$route['default_controller'] = "page/index";
// Page controller catch all
$route['(:any)'] = 'page/view/$1';

路由.php文件的顺序很重要,这些应该是文件中的最后两行。如果您有其他控制器(即新闻/博客/产品/任何),他们的路由应该高于这两个路由。

页.php

class Page extends CI_Controller {
    public function __construct()
    {
        parent::__construct();      
    }
    public function index()
    {
         // This will be where your load your top page (homepage)
    }
    public function view($uri)
    {       
         // This will be where you load all other content pages (about/info/contact/etc)
         echo $uri;
    }   
}

显然,这是非常基本的,但它可以让您了解如何实现页面的自动路由。知道 uri 后,可以使用它来从 csv/database/textfile 中提取有关该页面的信息,然后加载该 uri 的相应视图。