Ich habe meinen virtuellen Host unter Apache 2.4.7 mit einer sehr einfachen Konfiguration eingerichtet:
<VirtualHost *:80>
ServerName foo.example.com
DocumentRoot /var/www/html
DirectoryIndex index.php
FallbackResource /index.php
</VirtualHost>
Unter dem Dokumentenstamm habe ich folgende Struktur:
/index.php
/help/readme.txt
Ich erhalte die folgenden Ergebnisse, wenn ich Anfragen stelle:
/bla -> 200 OK
/help/ -> 404 Not Found
/help/a -> 200 OK
Es scheint, dass die Existenz des /help/
Verzeichnisses dazu führt, dass Apache zurückkehrt, 404
weil dort kein index.php
vorhanden ist, aber ich erwarte, dass alle Anforderungen aufgerufen werden /index.php
und somit eine 200 OK
Antwort erhalten.
Ich erinnere mich nicht, dass dies ein Problem bei der Verwendung war mod_rewrite
, aber ich bevorzuge die Verwendung, FallbackResource
wenn möglich. Gibt es eine Möglichkeit, dies zu beheben?
Aktualisieren
Es funktioniert, wenn ich die DirectoryIndex
Direktive entferne , aber das leidet unter fünf Sekunden Verzögerung .
Update 3
Ich führe die folgende Testumgebung aus. Die Verzeichnisstruktur lautet wie folgt:
./htdocs
index.html
test/
bla.txt
./conf
httpd.conf
./logs
Der Inhalt von httpd.conf
ist:
ServerName apache-bug.local
Listen 8085
DirectoryIndex disabled
DirectorySlash Off
<VirtualHost *:8085>
DocumentRoot /home/user/apache-bug/htdocs
FallbackResource /index.html
</VirtualHost>
Mein config.nice
enthält:
"./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" \
"$@"
So führen Sie den Server aus:
httpd -X -d /home/user/work/apache-bug/
/bla
?