小编Jac*_*ack的帖子

即使目录存在,也使用 FallbackResource

我已经使用非常基本的配置在 Apache 2.4.7 上设置了我的虚拟主机:

<VirtualHost *:80>
  ServerName foo.example.com
  DocumentRoot /var/www/html

  DirectoryIndex index.php
  FallbackResource /index.php
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

在文档根目录下,我具有以下结构:

/index.php
/help/readme.txt
Run Code Online (Sandbox Code Playgroud)

当我提出请求时,我得到以下结果:

/bla     -> 200 OK
/help/   -> 404 Not Found
/help/a  -> 200 OK
Run Code Online (Sandbox Code Playgroud)

似乎/help/目录的存在导致 Apache 返回,404因为那里没有index.php,但我希望所有请求都能调用/index.php并产生200 OK响应。

我不记得这是使用时的问题mod_rewrite,但FallbackResource如果可能的话,我更喜欢使用。有没有办法来解决这个问题?

更新

如果我删除DirectoryIndex指令,它会起作用,但是会遇到五秒延迟问题

更新 3

我正在运行以下测试环境;目录结构如下:

./htdocs
   index.html
   test/
      bla.txt
./conf
   httpd.conf
./logs
Run Code Online (Sandbox Code Playgroud)

内容httpd.conf为:

ServerName apache-bug.local
Listen 8085

DirectoryIndex disabled
DirectorySlash Off

<VirtualHost *:8085> …
Run Code Online (Sandbox Code Playgroud)

configuration apache-2.4

11
推荐指数
2
解决办法
4989
查看次数

Apache 在访问 `/` 时使用 FallbackResource 挂起 5 秒

我正在使用 PHP 5.4.21 运行 Apache 2.4.6 (Amazon) 的标准安装,对我的虚拟主机使用以下配置:

DirectoryIndex index.php
# ...
FallbackResource /index.php
Run Code Online (Sandbox Code Playgroud)

index.php是简单的缩影:

<?php echo "Hello world";
Run Code Online (Sandbox Code Playgroud)

访问http://<server-name>/神秘地仅在五秒钟后显示完整页面!任何其他页面都有预期的响应时间(很快)。

我发现这五秒与该Keep-Alive功能的默认等待时间有关;在这种情况下,直到 Apache 在该等待时间之后切断连接后,才会发送分块响应的最后几个字节。顺便说一句,这也完全破坏了持久连接本来可以为您带来的任何收益。

这是Apache的一个已知错误还是我在这里遗漏了一些非常明显的东西?

php apache-2.2

4
推荐指数
1
解决办法
993
查看次数

标签 统计

apache-2.2 ×1

apache-2.4 ×1

configuration ×1

php ×1