You can remove the index.php from the url when using CodeIgniter quite easily using the .htaccess file and Apache's mod_rewrite.
This means a url like
http://www.test-domain.co.uk/codeigniter/index.php/HomeController
can become
http://www.test-domain.co.uk/codeigniter/HomeController
There are various examples on the net, however the first few I tried threw an error... No input file specified.
This was because I was installing CodeIgniter into a subdirectory and the mod_rewrite code needed the RewriteBase added. The following code worked for me
DirectoryIndex index.php RewriteEngine on RewriteBase /codeigniter/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|robots\.txt) RewriteRule ^(.*)$ index.php?/$1 [L]
Just change RewriteBase /codeigniter/ to the subdirectory you have your files in, or leave it as a single slash if you're not using a subdirectory, i.e. RewriteBase /.
Full credit to jray from Stackoverflow for the answer.