之前回复别人的评论时发现自己的Windows11莫名其妙变成了Windows10(已经改数据库改回去了)

Windows 11-1

一通搜索过后发现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;
}