Codeigniter URI路由

时间:2013-04-30 17:56:04

标签: php codeigniter

我有各种静态页面,我不想为它们创建独立的控制器。

假设我想创建一个名为page的控制器,并将所有静态页面作为函数。

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Page extends Frontend_Controller {

    public function index()
    {

    }

    public function store(){
        $this->load->view('public/store');
    }
    public function contact(){
        $this->load->view('public/contact');
    }
    public function about(){
        $this->load->view('public/about');
    }    
}

无论如何都要修改URI路由,这样我就不必输入mydomain.com/page/contact但我可以输入mydomain.com/contact来查看页面

2 个答案:

答案 0 :(得分:2)

application/config/routes.php

您可以添加为:

$route['contact'] = "page/contacts";
$route['store'] = "page/store";
...

答案 1 :(得分:1)

在我的application/config/routes.php中,我使用以下正则表达式来执行此操作。我工作的大多数网站都比较小,所以我列出了以下代码段中的所有控制器(因为它比列出所有静态页面更容易)

$route['^(?!controller1|controller2).*'] = "page/$1";

逻辑基本上表示如果路径不是以controller1或controller2开头,那么使用页面作为控制器,用于http://domain.tld/page等网址

为了不必为我的所有静态页面创建10个以上的静态路由,它保持非常简单。