Apache deny access to subdirectories

.htaccessapache-2.2

my goal is to deny access to certain sub-directories. my localhost configuration allows overriding like that:

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

I also have an .htaccess file in /var/www/ with contents:

    <Directory /var/www/*>
            Order allow,deny
            allow from all
    </Directory>

Those rules above state access to everyone, but my server responds with internal error.
"cat /var/log/apache2/error.log | tail -n 10" gives:

    [Thu Feb 23 12:41:09 2012] [alert] [client 127.0.0.1] /var/www/.htaccess: <Directory not allowed here"

Why is that so ? Any links on extensive guides on this problem are also extremely appreciated. Thanks.

Best Answer

The reason you are getting that error message is because the <Directory> directive is only valid in the main Server config or a Virtual Host config and is not valid in a .htaccess file.

As to how to deny access, very simply you can set the permissions on the directories so that your apache cannot read them. More sophisticated methods would require that you tell us what you are trying to deny access from.

Related Topic