之前回复别人的评论时发现自己的Windows11莫名其妙变成了Windows10(已经改数据库改回去了)
一通搜索过后发现Win11和Win10的UA,没!有!区!别!(恼)
边查边改了几个小时之后终于是弄好了……
解决方法
打开网站根目录/var/Typecho/Request.php
,转到410行,把getAgent
下原本的代码替换成以下代码
public function getAgent(): ?string
{
// 这是注释掉的原代码
// return $this->getHeader('User-Agent');
header('Accept-CH: Sec-CH-UA-Platform-Version');
$ua = $this->getHeader('User-Agent');
$pl = $_SERVER['HTTP_SEC_CH_UA_PLATFORM_VERSION'] ?? false;
if (preg_match('/NT 10.0/i', $ua) == 1) {
if (!empty($pl)) {
if (substr(explode('.', $pl)[0], 1) >= 13) $ua = str_replace('NT 10.0', 'NT 11.0', $ua);
}
}
return $ua;
}
测试