WordPress实现全站HTTPS/SSL的301跳转的方法和规则

使用WordPress建好网站后,怎么将WordPress网站改造成HTTPS站点呢?下面详细来看看:

注意事项:

1、如果您的主题/插件使用绝对地址调用了http请求可能会导致网站打开会乱码,或不能有绿锁标识,需要联系程序提供商将所有http请求修改为https

2、由于程序中用于检测https的标识“$_SERVER['HTTPS']"未启用,可能导致网站访问时出现循环,不能登录后台等,需要修改该检测标识

3、因为修改了wp-includes/load.php或wp-includes/functions.php ,自动更新wordpress后会还原这两个文件,可能导致页面错乱,需要重新按照此教程重新修改对应文件

具体步骤:

1、部署完主机的SSL后,登录WordPress后台
设置 - 常规 - 将WordPress地址(URL)/站点地址(URL) 地址修改为https格式

2、部分URL地址已写入数据库通过后台方式无法更新的,可以使用phpmyadmin或其他管理工具将数据库中http替换为https(风险操作进行前请务必先对数据库进行备份)

使用MySQL命令,替换原来的固定连接
命令行 UPDATE wp_posts SET post_content = REPLACE( post_content, ‘旧网址’, ‘新网址’ ); 示例如下:

UPDATE wp_posts SET post_content = replace( post_content, 'http://www.429006.com','https://www.429006.com') ;
UPDATE wp_posts SET guid = replace( guid, 'http://www.429006.com','https://www.429006.com') ;

3、继续修改wp-includes/load.php或wp-includes/functions.php文件

搜索is_ssl找到对应的函数,将 $_SERVER['HTTPS'] 修改为 $_SERVER["HTTP_FROM_HTTPS"]

(修改文件前请注意备份)。

或将此函数修改为:

function is_ssl() {
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){
return true;
}
elseif (isset($_SERVER["HTTP_FROM_HTTPS"])&&$_SERVER["HTTP_FROM_HTTPS"]=='on'){
return true;
}
elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){
return true;
}
else{
return false;
}
}

4、如果使用云服务器配置https后wordpress后台无法登录提示将您重定向的次数过多,只需要在网站根目录的wp-config.php开头加入以下代码,即可完美解决此问题:

$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

原文地址:
https://faq.myhostadmin.net/faq/listagent.asp?Unid=2068

网站部署SSL证书以后301重定向跳转到https规则
https://faq.myhostadmin.net/faq/listagent.asp?unid=1419
https://blog.mydns.vip/4557.html

Related Posts