Подтвердить что ты не робот

Индекс каталога запрещен директивой 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 в каталог root и document (как это было предложено и в другом месте, но безрезультатно).

Любая помощь очень ценится.

Спасибо!

4b9b3361

Ответ 1

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

Options -Indexes

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

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

Проблема

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

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

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

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] сообщения об ошибке --- формат [имя_модуля: loglevel].

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

Apache 2.4 LogLevels

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

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

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

Уровень по умолчанию Apache 2.4 - "предупреждение". Поэтому все сообщения, относящиеся к появлению, предупреждению, криту, ошибке и предупреждению, записываются в 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

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

  • Измените/etc/httpd/conf.modules.d/00-base.conf и прокомментируйте строку:

    LoadModule autoindex_module modules/mod_autoindex.so
    

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

  • В каталоге /etc/httpd/conf.d переименовать (mv)

    sudo mv autoindex.conf autoindex.conf.<something_else>
    
  • Перезагрузите httpd:

    sudo httpd -k restart
    

    или

    sudo apachectl restart
    

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

Linux-дистрибутивы с командами ap2dismod/ap2enmod

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

    sudo a2dismod autoindex

чтобы включить модуль autoindex, введите

    sudo a2enmod autoindex

Ответ 5

Вставьте следующие строки:

<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.

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

Ответ 6

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

Ответ 7

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

Options +Indexes +FollowSymLinks