2013-02-05 103 views
1

我正在使用Codeigniter 2,并且我有一些从后台创建的动态页面(CMS),并将页面名称作为ID。而有些页面是静态的,还有一个例子:动态CMS页面和静态页面CodeIgniter

动态网页:

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

你可以明确地删除您.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(); 
    } 
}