为什么 Apache 不提供带有 Last-Modified 标头的 PHP 文件?

Why doesn't Apache serve PHP files with a Last-Modified header?

提问人:Jeff 提问时间:6/6/2011 更新时间:6/6/2011 访问量:2228

问:

这是设计使然吗?

在我的 Debian (Etch) 服务器上,我注意到 Apache (2.2) 在提供 PHP (mod_5.2.0) 文件(我们谈论的是 plain-jane PHP 文件)时不会发送标头。Last-Modifiedecho 'Hello World';

此外,我注意到 Apache 也没有为 PHP 文件提供标头,尽管我目前的主要内容是标头。Accept-RangesLast-Modified

php apache http-headers

评论

1赞 Pekka 6/6/2011
您应该在 PHP 中显式设置这些标头。
0赞 Salman A 6/6/2011
Apache无法判断您的php文件是否是plain-jane。 大小完全相同,但每天提供不同的内容。echo 'Hello World';echo date("Y-m-d");
0赞 Jeff 6/6/2011
这很有道理,谢谢!不过,我仍然想知道 Accept-Ranges 标头。据我了解,它只是用于下载恢复目的。删除 Accept-Ranges 标头是否是因为它不希望客户端继续下载动态内容?

答:

6赞 dynamic 6/6/2011 #1

PHP是可以更改的动态页面。所以 Apache 无法知道 Last-Modified 标头。

您可以使用以下命令添加自己的标头:

 header('Last-Modified: GMT time');

当然,如果你需要这个标头,也许你也希望管理请求标头 If-Modified-Since。

你可以在$_SERVER['HTTP_IF_MODIFIED_SINCE']

0赞 Rufinus 6/6/2011 #2

它只与静态文件一起发送。PHP 文件不是静态的。

但您可以自己发送它们,有关示例,请参阅 http://www.php.net/manual/en/function.getlastmod.php#30514