I was developing in XAMPP environment on my local machine, and everything is fine. I can access my controller like this:
localhost/myproject/index.php/catalog/home/get
catalog
is the sub folder under controllers
.
However, after I uploaded my project to the server. I should be able to access my page by the following url:
http://www.example.com/index.php/catalog/home/index
but this gives me a 404 page.
The only url works is the default page I defined in the route.php
file:
$route['default_controller'] = 'welcome';
In the config.php
, I set my base_url to be http://www.example.com/
All my controllers' first letter are capitalized and I'm using CI 3.1X. My server is a linux which uses nginx instead of apache. I tried to modify or delete my .htaccess file, but it doesn't solve my problem.
I'm not looking for an exact answer, I would like to know how to debug my code in this situation.
Here is an example of one of my controllers:
<?php
class Survey extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('catalog/model_survey');
$this->load->helper('url');
}
public function index()
{
$error = $this->input->get('error');
if (isset($error)) {
$data['error'] = true;
} else {
$data['error'] = false;
}
$data['action'] = "index.php/catalog/success";
$data['base'] = base_url();
$this->load->view('catalog/survey', $data);
}
}
Here is my folder structure:
application
|-- cache
|-- config
|-- controllers
| |-- admin
| | |-- common
| | |-- redpacket
| | |-- setting
| | `-- tools
| `-- catalog
|-- core
|-- helpers
|-- hooks
|-- language
| |-- chinese
| | `-- admin
| | |-- common
| | |-- redpacket
| | |-- setting
| | `-- tools
| `-- english
| `-- admin
| `-- common
|-- libraries
|-- logs
|-- models
| |-- admin
| | |-- common
| | |-- redpacket
| | |-- setting
| | |-- tools
| | `-- user
| `-- catalog
|-- third_party
`-- views
|-- admin
| |-- common
| |-- redpacket
| |-- setting
| `-- tools
|-- catalog
`-- errors
|-- cli
`-- html