微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从另一个实例提供Wordpress时出现混合内容错误

如何解决从另一个实例提供Wordpress时出现混合内容错误

我想从https://example.com/blog提供wordpress应用程序。问题是https://example.com托管在另一个实例上,而我正在将/blog重定向到另一个实例。我正在使用的服务器是Nginx。这是我的Nginx配置。

server {
 server_name example.com;

  location / {
   try_files $uri $uri /index.html;
  }

  location ^~ /blog {
   proxy_pass http://<IP>/blog;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

   allow <IP>;
 }
}

/blog在其他实例上运行时,由于代理传递给http:IP并通过https加载,这给了我混合内容错误。请帮我解决这个问题。

解决方法

$_SERVER['HTTPS']需要设置为on,以防您通过proxy_pass访问它并通过HTTPS传递它。否则,WordPress知道它已转发,但无法检查它是通过HTTP还是HTTPS传递到外部的。将这些行添加到您的wp-config.php文件中:

if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $_SERVER['HTTPS'] = 'on';
}

请注意,如果有多个代理并且其中之一不提供HTTPS服务,则必须根据HTTP_X_FORWARDED_FOR实际包含的内容来确定该条件。现在,我们仅检查它是否为非空,并假设它为HTTPS。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。