我正在尝试为带有 http://www.example.com/about 之类的网址的网站创建默认页面控制器。因此,如果没有“关于”控制器,则在数据库中查找具有该 url 字符串的页面。
我已将 404_override 设置为我的“页面”控制器,并使用 _remap() 函数来确定下一步要去哪里,加载主页(页面控制器的 index() 方法)或加载页面。
但是,就目前而言,如果我使用不同的控制器(在本例中为产品)和路径中的方法(http://www.example.com/product/widget,它不存在),我正在为页面控制器的 index() 方法提供服务。
我认为问题出在我检查请求的页面是否是我的 _remap() 中的主页的方式上,所以我在我的重映射的开头添加了一个回显,看看它是否重要。_remap() 似乎没有被调用。相反,在尝试处理 404_override CI 时,只显示索引方法。
有什么想法可以让我更有效地做到这一点吗?
public function _remap($method)
{
echo 'Method '.$method;
if($this->uri->segment(1) == null)
{
// $this->index();
} else {
$this->view();
};
}