我使用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
)
任何帮助,并提前感谢
答案 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();
}
}