Назад | Перейти на главную страницу

Apache: Options + Indexes по-прежнему приводит к 403 Forbidden или Apache Test Page

На локальном сервере разработки у меня есть конфигурация Apache для такого веб-сайта

<VirtualHost *:80>
  ServerAdmin no-reply@localhost
  ServerName sandbox.mysite.internal
  DocumentRoot /var/www/vhosts/sandbox/mysite
  ErrorLog logs/sandbox/mysite-error.log
  CustomLog logs/sandbox/mysite-access.log common
</VirtualHost>

Если я посещаю следующий адрес (нет index.php или index.html)

http://sandbox.mysite.internal

Я получаю тестовую страницу Apache CentOS

Если я захожу в подкаталог вроде

http://sandbox.mysite.internal/test/

Я получаю 403 Forbidden ошибка. Итак, я добавляю следующее .htaccess Вот:

/var/www/vhosts/sandbox/mysite/test/.htaccess

Содержание:

Options +Indexes

Теперь, когда я в гостях:

http://sandbox.mysite.internal/test/

Я все еще получаю 403 Forbidden.

Как сделать так, чтобы индекс каталога отображался?

Я всегда думал, что .htaccess директивы отменяют любые httpd.conf директивы. Но ошибаюсь ли я в этом? Есть ли какая-то настройка в моем httpd.conf это делает мой .htaccess директиву игнорировать?

Конечно, AllowOverride None предотвратит .htaccess файлы из работы. Но зачем их вообще использовать? Apache's рекомендация никогда не использовать .htaccess если только вы не можете получить доступ к основной конфигурации.

Попробуйте вместо этого:

<VirtualHost *:80>
  ServerAdmin no-reply@localhost
  ServerName sandbox.mysite.internal
  DocumentRoot /var/www/vhosts/sandbox/mysite
  ErrorLog logs/sandbox/mysite-error.log
  CustomLog logs/sandbox/mysite-access.log common
  <Directory /var/www/vhosts/sandbox/mysite/test/>
    Order allow,deny
    Allow from all
    Options +Indexes
  </Directory>
</VirtualHost>

Если это не сработает, посмотрите журнал ошибок Apache; например, у вас может быть что-то не так с правами доступа к файлу / каталогу.

Если ваш родительский каталог .htaccess (или ваш файл конфигурации Apache httpd.conf) запрещает доступ к каталогу по умолчанию (как и должно быть), тогда вам нужно будет добавить директиву «Требовать все предоставленные» в ваш файл .htaccess, чтобы список каталогов можно подавать. В противном случае посетители увидят ошибку 403 (доступ запрещен).

Чтобы это было безопасно, убедитесь, что ваш каталог и его файлы разрешают чтение, но запрещают запись (если вы действительно не хотите, чтобы пользователи могли изменять или хранить файлы на вашем сервере). Этот совет предполагает, что ваш сервер работает под управлением Linux, в котором есть функция видимых разрешений. Серверы Windows могут потребовать более сложных мер безопасности.