Typecho在HTTPS反代HTTP时遇到的bug处理


把博客改成HTTPS反代HTTP以后,觉得自己很久没收到评论提示了,于是决定上博客后台看看。突然发现博客后台进不去了,不仅是所有资源都被写成了http://,还有就算是手动load了这些http的不安全脚本,还是不能登录。后来经过阅读相关Typecho的源代码,才知道问题出在/var/Typecho.Request.php中的getUrlPrefix()函数中。这里调用了同文件中的isSecure()函数。而isSecure()函数中判断是https的方式有3种:

  1. PHP的$_SERVER['HTTPS']中值不为off
  2. PHP的$_SERVER['SERVER_PORT']中值为443
  3. 常量__TYPECHO_SECURE__为true

一看第三种方式处理起来最方便,于是打开/config.inc.php,在该插入的位置插入define('__TYPECHO_SECURE__', true);,就可以解决。博客的评论问题也同时可以完美解决。


注:本文根据 Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License 进行授权。

标签: typecho


撰写新评论

account_circle
mail
insert_link
mode_comment