问题
docker跑的wordpress需要用nginx代理出来,以http协议将wordpress代理出来没有问题,以https协议将wordpress代理出来出现问题。
代理出来的wordpress中混杂了http,导致无法访问。浏览器存在安全机制,当https网站去加载http资源时,默认会拒绝http资源
解决
修改配置文件 wp-includes/functions.php
## require ABSPATH . WPINC . '/option.php';
## 下添加如下
add_filter('script_loader_src', 'agnostic_script_loader_src', 20,2);function agnostic_script_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }
add_filter('style_loader_src', 'agnostic_style_loader_src', 20,2);function agnostic_style_loader_src($src, $handle) { return preg_replace('/^(http|https):/', '', $src); }
修改配置文件 wp-config.php
## 添加如下代码
$_SERVER['HTTPS'] = 'on';