I have following structure of my project
/system
/applications
/cache
/core
/helpers
/hook
/language
/libraries
/logs
/third_party
/admin-p
Open config.php from system/application/config directory
and replace
$config['index_page'] = “index.php” by $config['index_page'] = “”
Create a “.htaccess” file in the root of CodeIgniter directory
and add the following lines.
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
In some case the default setting for uri_protocol does not work properly.
To solve this problem just replace
`$config['uri_protocol'] = “AUTO”`
by
$config['uri_protocol'] = “REQUEST_URI”
from system/application/config/config.php
Have a look in the config.php file, there is a variable named 'index_page'
try changing
$config['index_page'] = "index.php";
to
$config['index_page'] = "";
Be sure of the following :
if your root folder for project is not root of domain i.e. your website is subdirectory of a domain http://localhost/myproject
then you need an additional line in your .htaccess file that is RewriteBase
RewriteEngine On
RewriteBase /myproject
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Also make sure, your config.php is configured as
$config['base_url'] = 'http://localhost/myproject/';
$config['index_page'] = '';
And mod_rewrite is enable in apache's config file.