На локальном сервере разработки у меня есть конфигурация 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 могут потребовать более сложных мер безопасности.