我已经使用非常基本的配置在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
什么?