1

Моя цель - запретить доступ к определенным подкаталогам. моя конфигурация localhost позволяет переопределить так:

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

У меня также есть файл .htaccess в /var /www / с содержимым:

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

Эти правила выше предоставляют доступ всем, но мой сервер отвечает внутренней ошибкой. "cat /var/log/apache2/error.log | tail -n 10" дает:

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

Почему это так ? Любые ссылки на обширные руководства по этой проблеме также очень ценятся. Благодарю.

1 ответ1

3

Сообщение об ошибке довольно ясно. Вы должны удалить

<Directory> and </Directory>

из вашего .htaccess файла. .htaccess применяется автоматически для каталога, в который вы его поместили, поэтому не должно быть никакой необходимости ссылаться на директивы <Directory> в вашем .htaccess . Вдобавок к этой документации Apache четко упоминается, что директивы <Directory> имеют конфигурацию сервера и область действия виртуального хоста (http://httpd.apache.org/docs/2.0/mod/core.html#directory) - то есть вы можете только поместить их в httpd.conf (т.е. основной конфиг) и в директивах <VirtualHost>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .