Elastic Beanstalk 上的 Https - wordpress

Posted

技术标签:

【中文标题】Elastic Beanstalk 上的 Https - wordpress【英文标题】:Https on Elastic Beanstalk - wordpress 【发布时间】:2015-05-27 16:42:21 【问题描述】:

我在一个在 aws eb 单实例上运行的 wordpress 网站上遇到了一个恼人的 https 问题。

我在 vps 中有相同的网站,https 工作正常,样式和 css 通过 https 提供。可以肯定的是(我花了 2 天时间试图找出问题所在)几分钟前,我在 eb 上部署了网站的副本 - 仅编辑数据库设置。

所以,问题是在 eb 中,如果我转到 https://mywebsite.com,页面“损坏”,样式和脚本是通过 http 的服务器。

在vps中如果我去https://mywebsite.com样式和脚本是https://mywebsite.com/styles/style.css,在eb样式和脚本是http://mywebsite.com/styles/style.css。

为什么会发生这种情况,我该如何解决?

我尝试编辑 wp_options 表并将 siteurl 和 home 设置为 https://mywebsite.com(vps 中的同一网站的值设置为 http://mywebsite.com)

AWS Elasticbeanstalk single instance Force SSL Redirect loop htaccess(强制https或仅强制http)被忽略了,我尝试了很多解决方案,但没有一个有效。唯一对我有用的解决方案是在检查服务器变量 http_x_forwarded_server 是否设置后将 php 重定向到 http

我读到所有 https 连接 - 在 eb 单实例中 - 通过端口 443 被“代理”到端口 80(这可能是问题吗?)

那么,有什么解决办法吗?我不想在网站中强制https,所以我不想安装强制https的插件,我只是希望通过https导航网站时网站不会崩溃

【问题讨论】:

【参考方案1】:

刚刚添加帖子后,我已经设法解决了这个问题。

为了以后参考,解决方法是添加这个变量$_SERVER['HTTPS'],设置为'on'

这是我的代码

if(isset($_SERVER['HTTP_X_FORWARDED_SERVER'])) 
  $_SERVER['HTTPS'] = 'on';

你可以将它添加到 index.php,或者像我一样,在你的主题的 header.php 中(在这种情况下请注意,如果你更改主题,代码将不会执行)

【讨论】:

以上是关于Elastic Beanstalk 上的 Https - wordpress的主要内容,如果未能解决你的问题,请参考以下文章

Python3 + Nginx:将 HTTP 流量重定向到 AWS Elastic Beanstalk 上的 HTTPS

AWS Elastic Beanstalk VPC - 从 ELB 到实例的 HTTPS

Elastic Beanstalk 将 http 重定向到 https 用于 iis 站点

AWS Elastic Beanstalk 上的 Django manage.py

AWS Elastic Beanstalk 上的 Tomcat:公开多个端口

AWS Elastic Beanstalk “所有实例上的服务受损。”