He configurado mi host virtual en Apache 2.4.7 con una configuración muy básica:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /var/www/html
DirectoryIndex index.php
FallbackResource /index.php
</VirtualHost>
Debajo de la raíz del documento tengo la siguiente estructura:
/index.php
/help/readme.txt
Obtengo los siguientes resultados cuando hago solicitudes:
/bla -> 200 OK
/help/ -> 404 Not Found
/help/a -> 200 OK
Parece que la existencia del /help/
directorio está causando que Apache regrese 404
porque no hay index.php
allí, pero espero que todas las solicitudes se invoquen /index.php
y, por lo tanto, den una 200 OK
respuesta.
No recuerdo que esto sea un problema al usarlo mod_rewrite
, pero prefiero usarlo FallbackResource
si es posible. ¿Hay alguna manera de arreglar esto?
Actualizar
Funciona si elimino la DirectoryIndex
directiva, pero eso tiene problemas de retraso de cinco segundos .
Actualización 3
Estoy ejecutando el siguiente entorno de prueba; La estructura del directorio es la siguiente:
./htdocs
index.html
test/
bla.txt
./conf
httpd.conf
./logs
El contenido de httpd.conf
es:
ServerName apache-bug.local
Listen 8085
DirectoryIndex disabled
DirectorySlash Off
<VirtualHost *:8085>
DocumentRoot /home/user/apache-bug/htdocs
FallbackResource /index.html
</VirtualHost>
Mi config.nice
contiene:
"./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 ejecutar el servidor:
httpd -X -d /home/user/work/apache-bug/
/bla
?