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