域名又被GFW重置了

已经一个多月没有更新博文了,也不知道哪里又触动了贵裆的G点,昨天发现在手机上用HTTP方式无法访问博客,报“网关从远端服务器读取数据失败”,但SSL仍然正常。

回到家里在PC机上用HTTP方式访问报“载入页面时到服务器的连接被重置”,如果用IP直接访问的话没有问题,因此基本上得到域名被GFW重置的结论。

博客基于StartSSL的HTTPS访问仍然正常,因此想到是不是可以兼容http和https方式访问博客呢?

经过查看WordPress的源码并测试,在不修改配置的情况下找到了兼容的方法:

修改wp/wp-includes/option.php第88行:

if ( in_array( $option, array('siteurl', 'home', 'category_base', 'tag_base') ) )
	$value = untrailingslashit( $value );

成:

if ( in_array( $option, array('siteurl', 'home', 'category_base', 'tag_base') ) ) {
	$value = untrailingslashit( $value );
	if (is_ssl()) $value = str_replace('http://', 'https://', $value);
}

即可,原理是如果是https方式访问,自动替换选项里跟网址相关的“http://”(默认值)内容为“https://”。

Tags: ,

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。