动态CMS页面和静态页面CodeIgniter

时间:2013-02-05 11:25:14

标签: codeigniter-2

我使用Codeigniter 2,我有一些动态页面(CMS),它们是从后台创建的,并且页面名称为ID。有些页面是静态的,有一个例子:

动态网页:

www.domain.com/privacy
www.domain.com/about

和静态页面:

www.domain.com/invitation

所以问题是如何路由这些页面:我试图使用:

 $route['([a-z0-9\-]+)'] = 'home/cms/$1';

但是它为我提供了404静态页面(www.domain.com/invitation

任何帮助,并提前感谢

1 个答案:

答案 0 :(得分:1)

您可以从.htaccess文件中的重定向中明确删除静态文件:

RewriteEngine on
RewriteCond $1 !^(invitation\.php|index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

或者,您可以使用_remap function。在_remap函数内部,您将检查是否存在“方法”的物理文件 - 如果存在,则加载它 - 如果没有,则路由到控制器方法:

public function _remap($method, $params = array())
{
    $filepath = BASEPATH.$method.".php";
    if (file_exists($filepath))
    {
        include($filepath);
        return;
    }
    else if (method_exists($this, $method))
    {
        return call_user_func_array(array($this, $method), $params);
    }
    else
    {
        show_404();
    }
}