Codeigniter中的路由-找不到404页

问题描述 投票:5回答:2

有人可以告诉我,问题出在哪里吗?

这是我的控制器

class Support extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        $this->load->model('support_model');
        $urlarray = array("index","delete");
        if(!in_array($this->uri->segment(2),$urlarray)){
            $this->viewticket($this->uri->segment(2));
        }
    }

    public function viewticket($id){
        if(!empty($id)){
            $this->load->view('templates/logged_header');       
            $this->load->view('support/view');
            $this->load->view('templates/footer');
        }
    }
}

这是我的routes.php

$route['default_controller'] = "welcome";
$route['benefits'] = 'welcome/benefits';
$route['faqs'] = 'welcome/faqs';
$route['distributors'] = 'welcome/distributors';
$route['contact'] = 'welcome/contact';
$route['purchase'] = 'welcome/purchase';

//login routes
$route['login'] = 'login/index';
$route['logout'] = 'login/logout';

$route['404_override'] = '';

[localhost/ciproj/support/hello-world给我404 Page Not Found错误

如果在exit;之后使用$this->load->view('templates/footer');,则该页面显示空白页面。

我在与支持有关的路线中没有任何东西,所有其他方法都在起作用我在路线中缺少什么吗?

感谢您的帮助。

php codeigniter codeigniter-2 codeigniter-routing
2个回答
6
投票

判断标题,首先检查您的服务器是否正在使用CGI/FastCGI运行PHP(您可以通过phpinfo()进行简单检查)。

如果是这样,请在phpinfo()中更改以下内容:

config.php

返回主题,可以通过在$config['uri_protocol'] = "REQUEST_URI"; 文件中使用以下单行路由来实现这一点:

routes.php

并从$route['support/(?!index)(?!delete)(:any)'] = "support/viewticket/$1"; 方法中删除这些行:

__construct

让我知道它是如何工作的。


0
投票

由于上述答案对我不起作用,所以我只在default_controller中添加了此功能,然后它起作用了。

$urlarray = array("index","delete");
if(!in_array($this->uri->segment(2),$urlarray)){
    $this->viewticket($this->uri->segment(2));
}
© www.soinside.com 2019 - 2024. All rights reserved.