Проблема заключается в следующем: при настройке нового виртуалхоста – сервер Apache не обрабатывает файл .htaccess.
Хотя в файле указана директива:
Options -Indexes
сервер все-равно отображает содержимое каталога виртуалхоста.
О создании и настройке виртуалхостов можно почитать тут>>>.
Решение заключается в переопределении параметра:
<Directory />
AllowOverride None
Order deny,allow
Deny from all
</Directory>
В файле конфигурации Apache – /usr/local/etc/apache22/httpd.conf установлено глобальное значение директивы – запретить в корневом каталоге сервера. Сама директива AllowOverride определяет директивы, разрешенные для использования в файле .htaccess.
Что бы не менять значение для всего каталога веб-сервера и его подкаталогов, переопределим значение для отдельного виртуалхоста.
В файл конфигурации /usr/local/etc/apache22/extra/httpd-vhosts.conf, где описан настраиваемый виртуалхост, в блок <VirtualHost *:80> можно добавить значение локальных директив для каталога.
К примеру, описание виртуалхоста:
<VirtualHost *:80>
ServerAdmin root@setevoy.org.ua
DocumentRoot /usr/local/www/users/setevoy/setevoy.org.ua
ServerName setevoy.org.ua
ServerAlias setevoy.kiev.ua
ErrorLog /var/log/apachelog/setevoy.org.ua-error.log
CustomLog /var/log/apachelog/setevoy.org.ua-error.log common
</VirtualHost>
Теперь, разрешим в нем использование любых параметров через .htaccess, для этого изменим описание, добавив блок <Directory>, в котором будет описано поведение сервера при чтении из указанного каталога:
<VirtualHost *:80>
ServerAdmin root@setevoy.org.ua
DocumentRoot /usr/local/www/users/setevoy/setevoy.org.ua
ServerName setevoy.org.ua
ErrorLog /var/log/apachelog/setevoy.org.ua-error.log
CustomLog /var/log/apachelog/setevoy.org.ua-error.log common
<Directory /usr/local/www/users/setevoy/setevoy.org.ua>
AllowOverride All
</Directory>
</VirtualHost>
… Профит!
Более подробная информация – на веб-сайте http://httpd.apache.org.