You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GoDaddy主机上PHP设置Last-Modified Header无效问题求助

解决GoDaddy主机上PHP设置Last-Modified Header无效的问题

我通过PHP生成并发送.css文件,输出内容前设置了以下Header:

header('Accept-Ranges: bytes');
header('Content-Length: '.strlen($css));
header('Content-Type: text/css');

同时设置了Last-Modified Header:

$lastModified = gmdate('D, d M Y H:i:s T', filemtime($file));
header('Last-Modified: '.$lastModified);

这段代码在本地XAMPP服务器上运行正常,但在GoDaddy主机上,Last-Modified Header被忽略,始终显示当前时间(从截图可见,响应头里的Last-Modified字段为当前请求时间,而非设置的文件修改时间)。以下是可行的解决办法:

  • 禁用GoDaddy的输出缓冲与压缩
    GoDaddy默认开启的输出缓冲或Gzip压缩会覆盖自定义的Last-Modified头。可以在PHP代码开头添加:
@ini_set('zlib.output_compression', 0);
@ini_set('output_buffering', 0);
@ob_end_clean();

或者在网站根目录的.htaccess文件中添加:

SetEnv no-gzip 1
SetEnv dont-vary 1
  • 调整Header设置顺序
    把Last-Modified头放在所有Header的最前面发送,避免后续服务器处理覆盖它:
$lastModified = gmdate('D, d M Y H:i:s T', filemtime($file));
header('Last-Modified: '.$lastModified);
header('Accept-Ranges: bytes');
header('Content-Length: '.strlen($css));
header('Content-Type: text/css');
  • 验证文件路径与权限
    确认$file变量指向的文件路径正确,且PHP进程能读取该文件的修改时间。可以用var_dump(filemtime($file))测试,若返回false,则需要修正文件路径或调整文件权限。

  • 补充ETag头并处理304状态
    如果Last-Modified始终被覆盖,可同时设置ETag头增强缓存控制,还能处理客户端的缓存验证请求:

$lastModified = gmdate('D, d M Y H:i:s T', filemtime($file));
$etag = md5_file($file);

// 处理缓存验证请求
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
    $clientEtag = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? trim($_SERVER['HTTP_IF_NONE_MATCH'], '"') : '';
    if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $lastModified || $clientEtag == $etag) {
        header('HTTP/1.1 304 Not Modified');
        exit;
    }
}

// 设置响应头
header('Last-Modified: '.$lastModified);
header('ETag: "'.$etag.'"');
header('Accept-Ranges: bytes');
header('Content-Length: '.strlen($css));
header('Content-Type: text/css');

内容的提问来源于stack exchange,提问作者Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:35:30