At work, every project has an .htaccess file containing at the least some mod_rewrite rules. This way, all I need to do to run a project is check it out of version control. I don’t need to modify my local Apache configuration.
But turning this option on and allowing .htaccess files may be a performance hit. More specifically, enabling the AllowOverride option in Apache is a performance hit. The Apache docs sums up the problem best:
“Wherever in your URL-space you allow overrides (typically
.htaccessfiles) Apache will attempt to open.htaccessfor each filename component. For example,DocumentRoot /www/htdocsAllowOverride all and a request is made for the URI
/index.html. Then Apache will attempt to open/.htaccess,/www/.htaccess, and/www/htdocs/.htaccess.”
So I disabled all .htaccess files in production, and inserted each file’s individual mod_rewrite rules into the main Apache config file. After a quick Apache Bench run, one project looked around 3% faster. Note that there are a few other useful optimizations on that page.