All of my URLs on my Magento installation require index.php in them, like:
http://example.com/index.php/admin/
http://example.com/index.php/customer/account/
If the other solutions don't work for you, try this:
Step 1: (if your installation is in webroot)
Replace
#RewriteBase /magento/
with
RewriteBase /
Step 2:
Add following lines (inclusive exclude admin because backend needs index.php internally)
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]
right after
RewriteRule .* index.php [L]
This works for me
In case it is still not working, double check Magento configuration: System->Configuration->Web->Search Engine Optimization. Rewrites must be enabled.