今天使用wordpress发现一个问题,绑定ip访问网站一切正常,但是使用cloudflare之后,前台的js和css都变成了http,如果cloudflare使用开发模式,一切又是正常的,很奇怪。
最后经过多次实验,重要找到了解决办法
修改wp-includes/load.php,搜索is_ssl
添加下面的代码
// BEGIN NEW TWO LINES
} elseif ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) {
return true;
// END NEW TWO LINES
最后变成下面的样子,也可以直接复制下面的代码替换到原来的代码
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;
// BEGIN NEW TWO LINES
} elseif ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && ( 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) ) { // <== NEW
return true;
// END NEW TWO LINES
}
return false;
}
最后经过测试,一切正常
到此为止。
发布者:彬彬笔记,转载请注明出处:https://www.binbinbiji.com/wordpress/3122.html