it-swarm.com.ru

Индекс каталога, запрещенный директивой Options

Я использую плагин dompdf для codeigniter: http://codeigniter.com/wiki/PDF_generation_using_dompdf/

генерировать PDF-файлы из формы. Это работает на localhost, но на живом сервере я получаю это в журнале ошибок:

Directory index forbidden by Options directive: /var/www/vhosts/domain.co.uk/httpdocs/mm/userdata/account1/invoices/

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

Я также попытался добавить пустой файл index.html в корневой каталог и каталог документов (как и предлагалось в другом месте, но безрезультатно).

Любая помощь с благодарностью.

Спасибо!

47
logic-unit

Либо основной файл httpd.conf, либо файл .htaccess в этом каталоге, либо в соседнем родительском каталоге, вероятно, содержат:

Options -Indexes

Возможно, вашему Хосту нужно установить его на +Indexes, если у вас нет доступа к .htaccess и вы хотите просматривать и просматривать содержимое каталога, отсутствует index.html, index.php по умолчанию и т.д. Если в каталоге не должно быть файла по умолчанию и вы не включаете Indexes, вы можете напрямую указывать только имена файлов содержимого в нем.

Параметр Indexes обычно отключается по умолчанию во многих установках Apache.

Полная информация доступна в основная документация Apache на Options

57
Michael Berkowski

Это означает, что в этом каталоге нет документа по умолчанию (index.html, index.php и т.д.). На большинстве веб-серверов это означало бы отображение списка содержимого каталога. Но показ того, что каталог запрещен конфигурацией сервера (Options -Indexes)

30
Marc B

Еще одна проблема, с которой вы можете столкнуться, если вы запускаете RHEL (я столкнулся с ней), это то, что есть стандартная страница приветствия, настроенная с помощью пакета httpd, которая переопределит ваши настройки, даже если вы добавите индексы параметров. Файл находится в /etc/httpd/conf.d/welcome.conf. См. Следующую ссылку для получения дополнительной информации: http://wpapi.com/solved-issue-directory-index-forbidden-by-options-directive/

9
majikman

Эта проблема

Индексы, видимые в веб-браузере для каталогов, которые не содержат файл index.html или index.php.

У меня было много проблем с настройкой на httpd-сервере Scientific Linux, чтобы перестать показывать эти индексы.

Конфигурация, которая не работала

директивы виртуального хоста httpd.conf:

<Directory /home/mydomain.com/htdocs>
    Options FollowSymLinks
    AllowOverride all
    Require all granted
</Directory>

и добавление следующей строки в .htaccess:

Options -Indexes

Индексы каталогов все еще показывались. Настройки .htaccess не работали! 

Как это может быть, другие настройки в .htaccess работали, так почему бы не этот? Что происходит? Это должно работать! % # $ & ^ $% @ # !! 

Исправление

Измените строку параметров httpd.conf на:

Options +FollowSymLinks

и перезапустите веб-сервер. 

Со страницы основного мода Apache: ( https://httpd.Apache.org/docs/2.4/mod/core.html#options )

Смешивание опций с + или - с теми, кто не имеет недопустимый синтаксис и будет отклонен во время запуска сервера при проверке синтаксиса с прервать.

Индексы каталогов Voilà больше не отображаются для каталогов, которые не содержат файл index.html или index.php. 

Что теперь! Новая морщина

Новые записи начали появляться в «error_log» при попытке доступа к каталогу:

[Fri Aug 19 02:57:39.922872 2016] [autoindex:error] [pid 12479] [client aaa.bbb.ccc.ddd:xxxxx] AH01276: Cannot serve directory /home/mydomain.com/htdocs/dir-without-index-file/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive

Эта запись из модуля Apache 'autoindex' с LogLevel 'error', как указано [autoindex: error] сообщения об ошибке --- формат - [module_name: loglevel].

Чтобы запретить регистрацию этих новых записей, необходимо изменить уровень LogLevel на более высокий уровень (например, «крит»), чтобы регистрировать меньше сообщений - только более серьезные сообщения об ошибках.

Apache 2.4 LogLevels

См. Основные директивы Apache 2.4 для LogLevel

emerg, предупреждение, критический, ошибка, предупреждение, уведомление, информация, отладка, trace1, trace2, trace3, tracr4, trace5, trace6, trace7, trace8

Каждый уровень глубже в списке регистрирует все сообщения любого предыдущего уровня (уровней). 

Уровень Apache 2.4 по умолчанию - «предупреждать». Поэтому все сообщения, классифицированные как emerg, alert, crit, error и warn, записываются в error_log.

Дополнительное исправление для остановки новых записей error_log

В раздел <Directory> .. </ Directory> файла httpd.conf добавлена ​​следующая строка:

LogLevel crit

Решение 1

Конфигурация моего виртуального хоста httpd.conf <Directory> .. </ Directory>:

<Directory /home/mydomain.com/htdocs>
    Options +FollowSymLinks
    AllowOverride all
    Require all granted
    LogLevel crit
</Directory>

и добавьте в/home/mydomain.com /htdocs/.htaccess корневой каталог файла .htaccess вашего веб-сайта:

Options -Indexes

Если вы не возражаете против сообщений об ошибках, опустите 

LogLevel crit

Scientific Linux - Решение 2 - Отключает mod_autoindex

Больше нет автоматического индексирования каталогов внутри вашего веб-пространства. Без изменений в .htaccess. Но нужен доступ к файлам конфигурации httpd в/etc/httpd

  1. Отредактируйте /etc/httpd/conf.modules.d/00-base.conf и прокомментируйте строку: 

    LoadModule autoindex_module modules/mod_autoindex.so
    

    добавив перед ним знак #, затем сохраните файл.

  2. В каталоге /etc/httpd/conf.d переименуйте (mv) 

    Sudo mv autoindex.conf autoindex.conf.<something_else>
    
  3. Перезапустите httpd:

    Sudo httpd -k restart
    

    или же

    Sudo apachectl restart
    

Autoindex_mod теперь отключен.

Linux дистрибутивы с помощью команд ap2dismod/ap2enmod

Отключить автоиндексный модуль введите команду

    Sudo a2dismod autoindex

для включения автоиндексного входа введите

    Sudo a2enmod autoindex
8
kaosengr

Вставьте эти строки:

<Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
        Options  +Indexes
</Directory>

В вашем файле C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\extra\httpd-vhosts.conf. Я предполагаю, что вы используете Virtual Host для разработки.

И тогда, конечно, просто перезапустите Apache.

Документация

4
Francisco Corrales Morales

Добавление этого в conf.d устранило эту проблему для меня.

Options +Indexes +FollowSymLinks
0
Sparkplug

Я застрял на той же ошибке, проблема возникла из-за синтаксическая ошибка в выражении MySql в моем коде, в частности, в моей переменной $ _session отсутствовала "'. Потребовались часы, чтобы понять это, потому что в журнале ошибок утверждение вводило в заблуждение. Надеюсь, это кому-нибудь поможет.

0
Tommaso Lazzari