1
votes

Regarding codeigniter routes.php :

We have following entry in C:\wamp\www\application\config\routes.php

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

and latestC is our default controller. Here default_controller is not working in production. If we remove line $route['404_override'] = 'latestC'; from routes.php, we are not able to reach to home page while hitting main url mozvo.com and its a 404. Basically 404_override is doing job for us instead of default_controller for taking to homepage on hitting mozvo.com. Requests are routing to home page by 404_override controller.

But in localhost, it works perfectly. In localhost if we remove 404_controller, default_controller takes care of main url (mozvo.com, here localhost ) and others non supported urls are 404 which is correct. But in production default_controller is not taking to homepage(mozvo.com) properly so we are forced to use 404_override to take default request to homepage.

Additional Info - Entries in C:\wamp\www\application\config\config.php

$config['base_url']    = 'http://mozvo.com/';
$config['index_page'] = '';
1

1 Answers

8
votes

I bet you the issue is due to case-sensitivity on files. Your local host is on WAMP - which windows does does not care about file cases.

i.e. latestC.php = latestc.php = LASTESTC.php

but on your production server (which I'm guessing is a LAMP) - case sensitivity DOES matter

i.e. latestC.php != latestc.php != LASTESTC.php

All your controllers must be LOWERCASE for Codeigniter. So change your routes to

$route['default_controller'] = 'latestc'; // all lowercase
$route['404_override'] = 'latestc'; //all lowercase

and make sure all your files are all lowercase