今天使用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/zh-hant/wordpress/3122.html