问题
Can someone tell me, where the issue is ??
This is my controller
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');
}
}
}
Here is my 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
gives me 404 Page Not Found
error
If I use exit;
after $this->load->view('templates/footer');
, the page is showing me blank page.
I don't have anything in routes related to support and every other method is working Is there anything that i'm missing in routes ??
Thanks for the help.
回答1:
Judging the title, first of all check if your server is running PHP using CGI/FastCGI
or not (you could simply check that by phpinfo()).
If so, change the following in config.php
:
$config['uri_protocol'] = "REQUEST_URI";
Back to the topic, you could achieve that by using the single-line route below within your routes.php
file:
$route['support/(?!index)(?!delete)(:any)'] = "support/viewticket/$1";
And remove these lines from your __construct
method:
$urlarray = array("index","delete");
if(!in_array($this->uri->segment(2),$urlarray)){
$this->viewticket($this->uri->segment(2));
}
Let me know how it works.
来源:https://stackoverflow.com/questions/18166496/routes-in-codeigniter-404-page-not-found