In application/config/config.php
change:
$config['index_page'] = 'index.php';
to:
$config['index_page'] = '';
it is a good idea to do apache reload everytime you change an apache config file.
sudo /etc/init.d/apache2 reload
or:
sudo service apache2 reload
or:
sudo /etc/init.d/httpd reload
(or whatever is the equivalent command for your platform)
for what it is worth, here is my .htaccess
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|static|robots\.txt|favicon\.ico|uploads|googlexxxxxxxx\.html|mobile.html)
RewriteRule ^(.*)$ index.php/$1 [L]