I recently posted a review of the popular PHP Framework “Codeigniter”. Most of the people have a hard time removing the index.php from the url so I have given the steps below

1. Create a new file named .htaccess and put it in the root of your application and write the following in it

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase
/

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond
%{REQUEST_FILENAME} !-d
RewriteRule
^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

2. In your config.php set $config['index_page'] = ;
3. Uncomment the mod_rewrite line in your Apache’s conf/httpconf file
LoadModule rewrite_module modules/mod_rewrite.so

4. Change AllowOverride None to AllowOverride All in your httpconf of Apache webserver

5. Restart your webserver and you’re good to go
Happy Code Igniting =)