PHP session 发送 header "Cache-Control: no-store, no-cache, must-revalidate"。如何更改为 "Cache-Control: s-maxage=10, public, max-age=10"
PHP session sending header "Cache-Control: no-store, no-cache, must-revalidate". How to change to "Cache-Control: s-maxage=10, public, max-age=10"
PHP session 导致每个页面包含 header cache-control: no-store, no-cache, must-revalidate
.
我需要覆盖此行为并将其更改为 Cache-Control: s-maxage=10, public, max-age=10
甚至只是 cache-control: public, max-age=10
.
我尝试使用 session 变量 session_cache_limiter('public');
和 session_cache_expire(1);
但是,过期值以分钟为单位,我不知道如何将它设置为 10 秒。
如何将 session_cache_expire(1);
设置为 10 秒?
如果那不可能,我还能如何覆盖 session header 并将缓存控制设置为 10 秒?
在 PHP 中使用 header() 函数:
<?php
header("Cache-control: public, max-age=10");
header("Expires: Sat, 1 Apr 2022 05:00:00 GMT");
?>
另一种选择是在顶部使用 HTML 标签 - 在第一个
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Cache-control" content="max-age=10" />
<meta http-equiv="Expires" content="Sat, 1 Apr 2022 05:00:00 GMT" />
</head>
<?php
// your php code starts here.
如果您使用任何具有模板的前端框架 - 您应该在那里寻找元标记,或者可能在该框架文档中寻找元标记(可能有专门的功能)。
在@Amikot40 和@CBroe 的帮助下,我已经解决了这个问题。
// remove pragma no-cache header with session variable
// this also sets the Cache-Control header, but you will change that after session start
session_cache_limiter('public');
session_start();
// cache for 10 seconds
header("Cache-Control: s-maxage=10, public, max-age=10");
// expire in 10 seconds
$expire_time = new DateTime('UTC');
$expire_time->add(new DateInterval('PT10S')); // add 10 seconds
$expire_time = $expire_time->format(DateTimeInterface::RFC7231);
header("Expires: $expire_time");
PHP session 导致每个页面包含 header cache-control: no-store, no-cache, must-revalidate
.
我需要覆盖此行为并将其更改为 Cache-Control: s-maxage=10, public, max-age=10
甚至只是 cache-control: public, max-age=10
.
我尝试使用 session 变量 session_cache_limiter('public');
和 session_cache_expire(1);
但是,过期值以分钟为单位,我不知道如何将它设置为 10 秒。
如何将 session_cache_expire(1);
设置为 10 秒?
如果那不可能,我还能如何覆盖 session header 并将缓存控制设置为 10 秒?
在 PHP 中使用 header() 函数:
<?php
header("Cache-control: public, max-age=10");
header("Expires: Sat, 1 Apr 2022 05:00:00 GMT");
?>
另一种选择是在顶部使用 HTML 标签 - 在第一个
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Cache-control" content="max-age=10" />
<meta http-equiv="Expires" content="Sat, 1 Apr 2022 05:00:00 GMT" />
</head>
<?php
// your php code starts here.
如果您使用任何具有模板的前端框架 - 您应该在那里寻找元标记,或者可能在该框架文档中寻找元标记(可能有专门的功能)。
在@Amikot40 和@CBroe 的帮助下,我已经解决了这个问题。
// remove pragma no-cache header with session variable
// this also sets the Cache-Control header, but you will change that after session start
session_cache_limiter('public');
session_start();
// cache for 10 seconds
header("Cache-Control: s-maxage=10, public, max-age=10");
// expire in 10 seconds
$expire_time = new DateTime('UTC');
$expire_time->add(new DateInterval('PT10S')); // add 10 seconds
$expire_time = $expire_time->format(DateTimeInterface::RFC7231);
header("Expires: $expire_time");