虚拟主机WordPress部署SSL注意事项(301跳转)

2026-03-15 10 0

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

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

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

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

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

添加完毕后浏览器访问网站前后台测试是否正常,如果正常则不需要做下面操作,如果不正常则继续修改wp-includes/load.phpwp-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' === (string) $_SERVER['HTTPS'] ) {
			return true;
		}
	} elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' === (string) $_SERVER['SERVER_PORT'] ) ) {
		return true;
	}

	return false;
}

替换为:

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;
	}
}

相关文章

发布评论