Впервые пишу .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