How to allow only specific directories to use htaccess?
You can specify an arbitrary amount of Directory tags and configure them independently.
You can do this by VirtualHost too.
Like:
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all
</Directory>
Related videos on Youtube
DisgruntledGoat
I'm a web developer and programmer from the UK. I'll fill this out more when I can be bothered; really I'm just trying to get the autobiography badge.
Updated on September 17, 2022Comments
-
DisgruntledGoat over 1 year
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 thenall
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). Notesection/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/site1
and no other directories. But that doesn't seem to be working...
- In the previous configuration, Apache would look for a htaccess in