Eu configurei meu host virtual no Apache 2.4.7 com uma configuração muito básica:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /var/www/html
DirectoryIndex index.php
FallbackResource /index.php
</VirtualHost>
Abaixo da raiz do documento, tenho a seguinte estrutura:
/index.php
/help/readme.txt
Recebo os seguintes resultados quando faço solicitações:
/bla -> 200 OK
/help/ -> 404 Not Found
/help/a -> 200 OK
Parece que a existência do /help/diretório está causando o retorno do Apache 404porque não há nenhum index.php, mas espero que todas as solicitações sejam invocadas /index.phpe, portanto, produzam uma 200 OKresposta.
Não me lembro de isso ser um problema ao usar mod_rewrite, mas prefiro usá-lo, FallbackResourcese possível. Existe uma maneira de corrigir isso?
Atualizar
Funciona se eu remover a DirectoryIndexdiretiva, mas isso sofre com problemas de atraso de cinco segundos .
Atualização 3
Estou executando o seguinte ambiente de teste; a estrutura de diretórios é a seguinte:
./htdocs
index.html
test/
bla.txt
./conf
httpd.conf
./logs
O conteúdo de httpd.confé:
ServerName apache-bug.local
Listen 8085
DirectoryIndex disabled
DirectorySlash Off
<VirtualHost *:8085>
DocumentRoot /home/user/apache-bug/htdocs
FallbackResource /index.html
</VirtualHost>
Meu config.nicecontém:
"./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" \
"$@"
Para executar o servidor:
httpd -X -d /home/user/work/apache-bug/
/bla?