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

Внутренняя ошибка сервера, что блокирует файл htaccess, позволяющий индексировать каталоги

Впервые пишу .htaccess, так что ...

Я пытаюсь разрешить индексацию каталога, а затем добавить пароль для конкретного каталога. Для этого я пишу файл .htaccess.

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

<Files index.html>
Order allow,deny
Allow from all
</Files>

Я получаю внутреннюю ошибку, когда использую следующее:

<Files index.html>
Order allow,deny
Allow from all
</Files>

<Directory>
Order allow,deny
Deny from all
</Directory>

Я использовал приведенное выше, поскольку это очень простые утверждения, и я просто проверяю, работает ли файл .htaccess.

Я предполагаю, что это как-то связано с отказом в каком-то конфигурационном файле на сервере. Я проверил apache2.conf, и его изменение, похоже, не дало особого результата. Возможно, я изменил его неправильно, однако ... Я также думаю, что это может иметь какое-то отношение к файлу 000-default (/ etc / apache2 / sites-enabled /), поскольку для них указано следующее:

ServerAdmin webmaster@localhost

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

Я полагаю, что это должно стать + Indexes. Но файл 000-default - это символическая ссылка, и я не знаю, где она указывает и где можно найти файл. Или мне не трогать этот и добавлять новый файл со ссылкой на каталог ...

Согласно документация: <Directory> нельзя использовать в htaccess контекст.

Что происходит, когда вы размещаете Options Indexes или DirectoryIndex index.html в вашем .htaccess?


Использование файлов .htaccess в каталогах (и того, что они могут содержать) должно быть настроено в главном apache2.conf файл конфигурации (или в файле конфигурации это включает) как описано в документации для AllowOverride

В моем файле конфигурации Apache

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

В AllowOverride None применяется ко всем каталогам, которые являются подкаталогом /. Позже должно быть это

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

Это усиливает это правило для основного корня документа и всех его подкаталогов.


Имя файла .htaccess является значением по умолчанию, но его можно изменить с помощью AccessFilename директива в apache2.conf, поэтому я бы проверил, что этой директивы НЕТ.


Когда вы редактируете apache2.conf вам следует попросить работающую службу Apache перезагрузить ее конфигурацию. Один из способов сделать это

apache2ctl configtest

Если Apache говорит, что ваша конфигурация в порядке, попросите его загрузить ее без остановки

apache2ctl graceful