在我的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 的相应视图。