Я створив свій віртуальний хост на 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
?