本文共 1639 字,大约阅读时间需要 5 分钟。
近几日,正在做一个使用WordPress 4.9.8开发外贸商务网站的应用,并想集成WooCommerce。由于此前,我购买了西部数码的PHP+MYSQL虚拟主机,但是安装有关Wordpress插件过程中,系统提示最好安装SSL安全证书。于是,我在自己的虚拟主机上购买配置了SSL证书。但问题并不那么简单,在安装了SSL证书后,因为此前已经安装了Wordpress并配置了http访问方式的网址。如今,使用https协议访问Wordpress网站竟然出现网站格式配置乱套的情形。于是,联系west.cn官方技术人员,对方回答的十分及时到位,并提供了如下参考网址。最终,问题得到完满解决。特别整理于下。
From:
1.如果您的主题/插件使用绝对地址调用了http请求可能会导致网站打开会乱码,或不能有绿锁标识,需要联系程序提供商将所有http请求修改为https
2.由于程序中用于检测https的标识“$_SERVER['HTTPS']"未启用,可能导致网站访问时出现循环,不能登录后台等,需要修改该检测标识
先参考:虚拟主机部署ssl证书(https)流程() 完成SSL部署
3.完成后登录WordPress后台 - 设置 - 常规 - 将WordPress地址(URL)/站点地址(URL) 地址修改为https格式,如下截图。
提示:部份url地址已写入数据库通过后台方式无法更新的,可以使用phpmyadmin或其他管理工具将数据库中http替换为https(风险操作进行前请务必先对数据库进行备份)。
【说明】我使用西部数码提供的MYSQL数据表修改工具把有关记录中的http协议修改为https。涉及的只有一个表格是:wp_posts;因为从这个文件命名来看,自然是存储所有博客文章的表格,因此估计问题不在于这里。于是,修改完后,继续往下操作。
继续修改wp-includes/load.php或wp-includes/functions.php这个文件,搜索is_ssl找到对应的函数,将$_SERVER['HTTPS']修改为$_SERVER["HTTP_FROM_HTTPS"](修改文件前请注意备份)。
或将此函数修改为:
function is_ssl() { if ( isset( $_SERVER['HTTPS'] ) ) { if ( 'on' == strtolower( $_SERVER['HTTPS'] ) ) { return true; } if ( '1' == $_SERVER['HTTPS'] ) { return true; } } elseif ( isset($_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) { return true; } elseif (isset($_SERVER["HTTP_FROM_HTTPS"])&&$_SERVER["HTTP_FROM_HTTPS"]=='on'){ return true; } return false;}
我作的修改是:wp-includes/load.php,而不是wp-includes/functions.php这个文件。打开文件load.php,搜索is_ssl找到对应的函数,将$_SERVER['HTTPS']修改为$_SERVER["HTTP_FROM_HTTPS"]。
至此,保存上面修改的文件,再使用https协议访问我的Wordpress网址,则原来Wordpress网站内容样式一切正常!即问题得到修复!
转载地址:http://zezjl.baihongyu.com/