Php 如何在CodeIgniter中实现此URI方案?
我正在用CodeIgniter创建一个博客站点,我想使用第一个URI段作为一个动态类别 所有这些URI: http://example.com/category2/some-post 将全部转到“categories”控制器,在那里它将从数据库中找到类别 我可以用Php 如何在CodeIgniter中实现此URI方案?,php,codeigniter,Php,Codeigniter,我正在用CodeIgniter创建一个博客站点,我想使用第一个URI段作为一个动态类别 所有这些URI: http://example.com/category2/some-post 将全部转到“categories”控制器,在那里它将从数据库中找到类别 我可以用$routes['(:any)]='categories'轻松实现这一点,但当然,我的所有其他静态控制器都无法工作,例如管理员、用户等 那么,如何在允许其他静态页面不被路由的情况下实现此URI方案呢?除非手动为每个类别创建特定路由,否
$routes['(:any)]='categories'轻松实现这一点代码>,但当然,我的所有其他静态控制器都无法工作,例如管理员、用户等
那么,如何在允许其他静态页面不被路由的情况下实现此URI方案呢?除非手动为每个类别创建特定路由,否则无法实现
例如:
$route['php'] = 'categories';
$route['java'] = 'categories';
如果你看wordpress,它们以/category/
开始分类,并且所有页面都是其他任何页面,因此你可能应该这样做。正如Francois所说,你必须为每个分类创建一条路线。这可以通过以下简单数组稍微简化:
$categories = array('cat1','cat2','etc...');
foreach($categories as $cat)
{
$routes["$cat/(:any)"] = "category/$cat/\$1"
}
一种可能的替代方法是使用预控制器钩子,在该钩子中可以查询数据库以查看该段是否为类别,然后适当地引导请求
如果你会有很多类别,或者它们会被频繁地添加和更新,我推荐第二个选项,否则,维护一个简单的数组并不太糟糕。另一个选项是声明路由中的所有静态控制器