如何在PHP文件中使用etags?

Nag*_*gra 20 php etag caching header

你如何在PHP文件中实现etags?我上传到服务器的内容以及我在PHP文件中插入的内容是什么?

Nag*_*gra 36

创建/编辑.htaccess文件并添加以下内容:

FileETag MTime Size
Run Code Online (Sandbox Code Playgroud)

将以下内容放在函数中或将其放在需要etags处理的PHP文件的顶部:

<?php 
    $file = 'myfile.php';
    $last_modified_time = filemtime($file); 
    $etag = md5_file($file); 

    header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); 
    header("Etag: $etag"); 

    if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time || 
        trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) { 
        header("HTTP/1.1 304 Not Modified"); 
    exit; 
} 
?>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这基本上只有在PHP文件不包含任何其他文件时才有效.更新其他文件时,不会更改ETag. (5认同)
  • Etag 值必须包含引号,https://datatracker.ietf.org/doc/html/rfc7232#section-2.3 (2认同)