DirectoryIndex работает в htaccess, но не в файлах apache2 .conf

DirectoryIndex работает в htaccess, но не в файлах apache2 .conf

Мне нужно, чтобы моя установка Ubuntu использовала index.php в качестве файла по умолчанию.

Добавлен

  DirectoryIndex index.php 

в /etc/apache2/apache2.conf

Добавлен

<Directory /path/to/website/root/>
    DirectoryIndex index.php 
</Directory>

в /etc/apache2/sites-available/mysite.conf с последующим включением и перезапуском

sudo a2ensite mysite
sudo service apache2 restart

Что я пропустил? Сервер все равно не загружает файл по умолчанию.

ПРИМЕЧАНИЕ: Добавление DirectoryIndex index.phpв .htaccess дает желаемый эффект, но я бы предпочел сделать это через файл .conf.

решение1

Куда вы поместили DirectoryIndex? Добавление его в .htaccess эквивалентно размещению оператора в:

<Directory /path/to/htaccess/file/>
DirectoryIndex index.php
</Directory>

так что попробуйте добавить оператор каталога вокруг DirectoryIndex. Немного хакерски, но это, вероятно, сработает? Если это не так, попробуйте дать нам гораздо больше вашей конфигурации, например, всю конфигурацию vhost.

решение2

Сегодня у нас была похожая проблема на SLES 11 SP4 с Apache 2.2 с довольно стандартной конфигурацией Apache. Проблема была в том, что Apache игнорировал существующий файл index.html, когда он явно не вызывался по URL. Например, server.domain.tld/dir/

Однако, если вызвать явный файл, он обслуживает содержимое. например, server.domain.tld/dir/index.hmtl . так что проблем с разрешениями файловой системы не было. Все файлы в htdocs имели достаточные разрешения для группы OTHERS . НО все файлы htdocs тогда принадлежали root.root . Так что в этом «режиме» Apache не обслуживал index.html, если он не был указан в URL.

В тот момент, когда мы рекурсивно изменили обратно директорию htdocs и файлы на владельца "wwwrun.www", который является "по умолчанию" на SLES (suse linux enterprise Server) без изменения самих разрешений, apache снова начал обслуживать index.html, как обычно и ожидалось. Никакой перезагрузки или чего-либо еще не потребовалось.

Не могу сказать, ошибка это или фича. Просто хотел рассказать, с чем мы столкнулись и как решили проблему.

поэтому вы можете проверить свое право собственности на файлы htdocs и убедиться, что они принадлежат учетной записи службы и группе веб-сервера.

решение3

Попробуйте вместо этого использовать директиву местоположения.

<Location /path/to/htaccess/file/>
    DirectoryIndex index.php
</Location>

Связанный контент