Efficient .htaccess

February 2nd, 2013
tech
In Apache you can put configuration files in each directory: .htaccess files. Every time someone requests a page, however, Apache needs to check for a .htaccess file in that directory, reading and parsing it if it exists. Switching to <Directory> blocks in your main config is much faster, but many places like shared hosting environments can't do that. A solution here might be to add an option to relax Apache's promise of rereading .htaccess files on every request. Instead it could search for them and parse them on startup, and you could either send it a signal to tell it to reload them or it could watch them with inotify.

As a workaround for now, you could use a converter like this one that reads all your .htaccess files and collects them into a htaccess.conf. (You'd run with AllowOverride off.) If you wanted to use this in a shared environment, though, you'd need to parse the config and check that it's safe, not containing an "</Directory>...<Directory ...>" or other injection.

Referenced in: Apache doesn't cache htaccess configs

Comment via: google plus, facebook, substack

Recent posts on blogs I like:

American effective altruists should probably donate to political candidates

My recommendation for donors who are American citizens or permanent residents is that they donate directly to high-value political candidates.

via Thing of Things December 28, 2025

Opinionated takes on parenting

This post is a collection of parenting takes that sometimes go through my head, based on my experience raising our two boys (5 and 2 years old). All of this is based on my experience and might not apply to others (see the law of equal and opposite advice)…

via Victoria Krakovna December 16, 2025

How to Make a Christmas Wreath

Yesterday, I made a Christmas wreath. Here's how to make one. First, find an evergreen tree near your house. Clip off a few branches from the tree. Try to have as many leaves or needles on the branches as possible. Next, bring them home. What I usu…

via Anna Wise's Blog Posts December 6, 2025

more     (via openring)