由于博客被墙了,不知道是因为什么原因,又不想换域名,干脆整站上HTTPS吧。 我用的是CDN厂商CloudFlare 提供的免费证书。无需服务器部署直接在CDN后台设置页面规则即可,服务器只需在nginx配置里添加监听443端口:
listen 443

然而……typecho部署https后,出现不能加载http资源的问题

修改源码/var/Typecho/Common.php一个地方即可,加个替换
    /**
     * 将路径转化为链接
     *
     * @access public
     * @param string $path 路径
     * @param string $prefix 前缀
     * @return string
     */
    public static function url($path, $prefix)
    {
        $path = (0 === strpos($path, './')) ? substr($path, 2) : $path;
        //return str_replace("http:","",rtrim($prefix, '/') . '/' . str_replace('//', '/', ltrim($path, '/')));  //原
        return str_replace("http:","",rtrim($prefix, '/') . '/' . str_replace('//', '/', ltrim($path, '/')));   //修改后
    }

这样,不论当前环境是http还是https都能很好的继承协议了,不再出现HTTPS由于安全问题不能加载http混合内容的问题。
        
源链接

Hacking more

...