Я настроил свой виртуальный хост на Apache 2.4.7 с очень простой конфигурацией:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /var/www/html
DirectoryIndex index.php
FallbackResource /index.php
</VirtualHost>
Под корнем документа у меня есть следующая структура:
/index.php
/help/readme.txt
Я получаю следующие результаты, когда я делаю запросы:
/bla -> 200 OK
/help/ -> 404 Not Found
/help/a -> 200 OK
Кажется, что существование /help/
каталога заставляет Apache возвращаться, 404
потому что там его нет index.php
, но я ожидаю, что все запросы будут вызываться /index.php
и, следовательно, давать 200 OK
ответ.
Я не помню, чтобы это было проблемой при использовании mod_rewrite
, но я предпочитаю использовать, FallbackResource
если это возможно. Есть ли способ это исправить?
Обновить
Это работает, если я удаляю DirectoryIndex
директиву, но это страдает от пяти секундных задержек .
Обновление 3
Я использую следующую тестовую среду; структура каталогов выглядит следующим образом:
./htdocs
index.html
test/
bla.txt
./conf
httpd.conf
./logs
Содержание httpd.conf
:
ServerName apache-bug.local
Listen 8085
DirectoryIndex disabled
DirectorySlash Off
<VirtualHost *:8085>
DocumentRoot /home/user/apache-bug/htdocs
FallbackResource /index.html
</VirtualHost>
Мой config.nice
содержит:
"./configure" \
"--enable-debugger-mode" \
"--with-apr=/usr/local/apr/bin/apr-1-config" \
"--enable-dir=static" \
"--with-mpm=prefork" \
"--enable-unixd=static" \
"--enable-authn-core=static" \
"--enable-authz-core=static" \
"$@"
Чтобы запустить сервер:
httpd -X -d /home/user/work/apache-bug/
/bla
?