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,
1 2 3 4 DocumentRoot /www/htdocs <Directory /> AllowOverride all </Directory>
and a request is made for the URI
/index.html. Then Apache will attempt to open
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.