【发布时间】:2009-10-18 01:38:03
【问题描述】:
我正在使用 PHP 脚本来提供文件。
如果自客户端上次下载后文件未更改,我希望能够在我的 http 响应中发回 304 未修改的标头。这似乎是 Apache(和大多数其他 Web 服务器)中的一个功能,但我不知道如何通过 PHP 实现它。
我听说过使用$_SERVER['HTTP_IF_MODIFIED_SINCE'],但是这个变量似乎没有出现在我的$_SERVER 超级数组中。
我的问题不是如何返回 304 标头,而是如何知道应该返回一个。
编辑:问题是我的$_SERVER['HTTP_IF_MODIFIED_SINCE'] 没有设置。这是我的.htaccess 文件的内容:
ExpiresActive On
ExpiresByType image/jpeg "modification plus 1 month"
ExpiresByType image/png "modification plus 1 month"
ExpiresByType image/gif "modification plus 1 month"
Header append Cache-Control: "must-revalidate"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(controller\.php)
RewriteRule (.*\.jpg|.*\.png|.*\.gif) controller.php/$1
</IfModule>
HTTP_IF_MODIFIED_SINCE 仍然没有出现在$_SERVER 超级数组中。
【问题讨论】:
标签: php http caching http-headers