已经一个多月没有更新博文了,也不知道哪里又触动了贵裆的G点,昨天发现在手机上用HTTP方式无法访问博客,报“网关从远端服务器读取数据失败”,但SSL仍然正常。
回到家里在PC机上用HTTP方式访问报“载入页面时到服务器的连接被重置”,如果用IP直接访问的话没有问题,因此基本上得到域名被GFW重置的结论。
博客基于StartSSL的HTTPS访问仍然正常,因此想到是不是可以兼容http和https方式访问博客呢?
经过查看WordPress的源码并测试,在不修改配置的情况下找到了兼容的方法:
修改wp/wp-includes/option.php第88行:
[php]
if ( in_array( $option, array(‘siteurl’, ‘home’, ‘category_base’, ‘tag_base’) ) )
$value = untrailingslashit( $value );
[/php]
成:
[php]
if ( in_array( $option, array(‘siteurl’, ‘home’, ‘category_base’, ‘tag_base’) ) ) {
$value = untrailingslashit( $value );
if (is_ssl()) $value = str_replace(‘http://’, ‘https://’, $value);
}
[/php]
即可,原理是如果是https方式访问,自动替换选项里跟网址相关的“http://”(默认值)内容为“https://”。