Magento uses the Front Controller pattern, all of its page request go through a single entry point index.php. If you prefer to hide the “index.php” part in the URLs you need to enable web server rewrites in Magento admin.
A URL like “http://www.testmagento.com/electronics/cell-phones.html” is much more user friendly than “http://www.testmagento.com/index.php/electronics/cell-phones.html”, it also hides the fact that the page displayed is a PHP page so hiding “index.php” in URLs is good for security purpose. Hiding “index.php” does not affect website performance in any way neither it affects search engine rankings.
To remove index.php from the Urls in Magento, I enabled web server rewrites from Magento admin. I cleared the Magento cache and refreshed the home page. The home page loaded well and index.php was removed from all the links on home page but when I clicked link on any home page it gave me 404 error. If I added index.php to the page URL in browser manually it loaded well. I had Apache running on Ubuntu.