Currently in apache2.conf I have AllowOverride all set for /var/www which simply allows htaccess for all the sites on the server (which is Ubuntu, 9.04).
However, I'd rather only allow overrides in each site root directory and nothing else. In other words, /var/www/site1, /var/www/site2, etc. can have a htaccess, but all other directories including /var/www and /var/www/site1/content cannot.
Is there a way to do this without having to write a rule for every site on the server?
EDIT: Maybe my question wasn't clear enough. But I have just tried a couple of things that didn't work as expected. I set AllowOverride none for the root directory then all for specific directories like this:
<Directory ~ "^/var/www/site1$">
AllowOverride all
</Directory>
However, when loading a URL like site1.com/section/page the page cannot not be found (shows the browser error page, not my 404 page). Note section/page is not a real filesystem URL, it's a rewrite.
It was my understanding that:
- In the previous configuration, Apache would look for a htaccess in
/var/www/site1/section(which doesn't exist), then try/var/www/site1, and then any parent directories. - With the directives above, Apache should now just look at
/var/www/site1and no other directories. But that doesn't seem to be working...