Страница 1 из 2

Вопрос по поводу DirectoryIndex в конфигурации

Добавлено: 16 янв 2013, 15:40
soeldo
Максим, здравствуйте!
Скачал и установил OpenServer без каких-либо затруднений. Все работает отлично! Большое Вам спасибо! Опишу в двух словах выполненные настройки.
Сконфигурировал www сервер что бы он прослушивал все доступные сетевые интерфейсы на сервере. Сервер доступен по всем IP на порту 80. В настройках модулей сервера использую только Apache-2.2.23 без Nginx. Версия сервера приложений самая последняя - version=476
Добавил алиасы для хоста по умолчанию, т.е. чтобы при обращении к серверу по IP открывался специально предназначенный для этих нужд виртуальный хост.

Получиллось так: 10.21.48.15 => MyHostDefault и 10.113.12.15 => MyHostDefault Данный виртуальный хост стал доступен при обращению к серверу по IP. Но есть одна маленькая неприятность, которую я не могу никак устранить самомтоятельно.

В директории виртуального хоста помещаю два файла index.html и .htaccess
В файле .htaccess указываю DirectoryIndex main.html Но при обращении к этому хосту, получаю ошибку 403 Access forbidden!
Если переименовываю файл main.html => main.php ошибка не исчезает. Сервер отдает индексный файл ТОЛЬКО если он имеет имя index и расширение PHP.

Получается Apache игнорирует директиву DirectoryIndex в htaccess и несмотря на то что в корневой директории виртуального хоста находится требуемый файл возвращает ошибку 403.

Пробовал создать еще несколько тестовых доменов, открывая их локально на том же компе, где развернут сервер приложений.
Во всех случаях веб сервер Apache игнорирует директиву DirectoryIndex в htaccess Хост отдает только индексные файлы с расширением PHP и именем index. Все остальные файлы сервер упорно не видит, несмотря на явное указание на него в файле htaccess

Заглянул в файл шаблона настроек Apache-2.2.23_server.conf

в разделе
#---------------------------------------------#
# Конфигурация Index-а и иконок
#---------------------------------------------#
в секции
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm index.pl
</IfModule>

Вроде ошибок нет, все прописано правильно.

в разделе
#---------------------------------------------#
# Настройка прав доступа к серверу
#---------------------------------------------#
в секции
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
Указан только index.php

Возможно, что имено в этом и кроется причина что веб сервер не видит индексные файлы с именем отличным от index.php но я не уверен в правильности своего суждения. Лишний раз не хочу вносить никаких изменений в конфигурацию сервера. Но вопрос, почему тогда ингорируется директива DirectoryIndex в .htaccess остается открытым.

Прошу Вас Максим, помочь разобраться в данном вопросе. В руководстве по установке и настройке сервера, я не нашел никаких указаний, как поступить в данной ситуации.
Заранее благодарю Вас за ответ и любую помощь в настройке OpenServer(а)!

Добавлено: 16 янв 2013, 17:30
Максим
В секции Настройка прав доступа к серверу параметр DirectoryIndex index.php указан для папки %sprogdir%/modules/system/html/*" так что он никакого отношения к вашей проблеме не имеет. Индекс в конфиге прописан - это DirectoryIndex index.php index.html index.htm index.pl и он прекрасно работает. Я создал домен, прописал index.html в .htaccess и всё открывается как положено, Apache ничего не игнорирует. С оригинальным конфигом проблем быть не может.

Ваше же проблема в том, что в .htaccess вы прописываете index.html, но на диске оперируете файлами main.html и main.php...

Добавлено: 16 янв 2013, 17:40
soeldo
Ваше же проблема в том, что в .htaccess вы прописываете index.html, но на диске оперируете файлами main.html и main.php...
Простите, я не настолько невнимательный, что бы переименовывать индексный файл в корне виртуального хоста, и при этом забывать изменить значение параметра в файле htaccess

Вот только сейчас, полностью переустановил сервер приложений с дефолтными конфигами ничего не меняя, в настройках. Но увы, проблема остается актуальной.

Пытаюсь получить доступ к серверу по IP адресу 127.0.0.1 ответ сервера => Error 403 и это несмотря на то, что в директории D:\OpenServer\modules\system\html\openserver\default\ находятся два файла index.html и соответственно .htaccess

Почему тогда не обрабатывается параметр напрямую указывающий на индексный файл, который находится в корне этого хоста? Мне не понятно...
Следуя логике я должен получить содержимое файла index.html дефолтного хоста... Но в результате ошибка 403.

А если переименовать файл в index.php, то ошибка 403 не появляется, а в браузере выводится пустой файл.

Повторно создал свой дефолтный домен MyDefaultDomain и прописал его как алиас для интерфейса смотрящего в локальную сеть. Виртуальный хост открывается при обращении на IP локального интерфейса, и снова ошибка 403. Хотя файл index.html присутствует в корне.

Понимаю это не столь значимый недостаток. Можно переименовать все скрипты в PHP и не обращать на это внимания. Вопрос только в том, что я делаю не так...

Добавлено: 16 янв 2013, 17:47
Максим
soeldo писал(а):403 и это несмотря на то, что в директории D:\OpenServer\modules\system\html\openserver\default\ находятся два файла
:) Эта папка является заглушкой, естественно что на все запросы она отвечает 403 и именно для неё прописан index.php в конфиге апача. Зачем вы вообще в неё полезли если она служебная? А во вторых вы создали алиас, 10.21.48.15 => MyHostDefault вот в папке домена MyHostDefault и размещайте свои индексные файлы... не понимаю вообще как вас угораздило залезть в служебную папку.

Добавлено спустя 15 секунд:
Вы руководство пользователя читали? Вы знаете как создавать домены и где хранятся их папки?

Добавлено: 16 янв 2013, 17:54
soeldo
Максим писал(а):Вы руководство пользователя читали? Вы знаете как создавать домены и где хранятся их папки?
Естественно, руководство пользователя мною прочитано. Именно по такому пути, как Вы указали я и помещаю все свои файлы. Думаю тему можно закрывать. Благодарю Вас Максим за помощь!
Попробую еще раз все снести и установить сервер приложений в другую директорию...

Добавлено: 16 янв 2013, 17:56
Максим
soeldo писал(а):Именно по такому пути, как Вы указали я и помещаю все свои файлы.
:shock: где это я интересно мог указать что файлы нужно помещать в modules\system\html\openserver\default\ ??? Не пишите чепухи пожалуйста.

Добавлено: 16 янв 2013, 17:58
soeldo
Вы меня не верно поняли. Я все файлы для данного дефолтного домена размещаю по адресу D:\OpenServer\domains\MyHostDefault\ именно это я и хотел Вам сказать...

Добавлено: 16 янв 2013, 17:59
Максим
soeldo писал(а):Вы меня не верно поняли. Я все файлы для данного дефолтного домена размещаю по адресу D:\OpenServer\domains\MyHostDefault\ именно это я и хотел Вам сказать...
Да, вот так верно, там создайте index.html и .htaccess и будет всё работать хорошо. А в служебные папки больше не вмешивайтесь ;)

Добавлено: 16 янв 2013, 18:00
soeldo
Будем стараться, следовать Вашим советам и еще раз спасибо!

Добавлено: 16 янв 2013, 18:14
Asmodey
soeldo писал(а): Пытаюсь получить доступ к серверу по IP адресу 127.0.0.1 ответ сервера => Error 403 и это несмотря на то, что в директории D:\OpenServer\modules\system\html\openserver\default\ находятся два файла index.html и соответственно .htaccess
1. 403 Это отлуп. Нельзя туда лезть. Как бы к индексам папки отношение?
2. Зачем что-то править или пихать в D:\OpenServer\modules\system\html\openserver\default\ ?
3. В domains создать парку asd.dev. В ней несколько подпапок. Пару каких файлов. Создать qwe.html с каким-то текстом. И ТАМ ЖЕ .htaccess. С ровно одной строкой DirectoryIndex qwe.html
4. Запустить.
5. Что кажет браузер по адресу http://asd.dev?
6. Снести .htaccess. Что теперь кажет браузер?