我正在使用Elastic Beanstalk(带有负载平衡器)来支持Wordpress网站。我已经通过证书管理器(ACM)设置了SSL,并启用了负载平衡器以在端口443上侦听HTTPS。我还尝试通过wp_config.php
将以下行添加到我的源包中的来强制在Wordpress网站上进行HTTPS (许多帖子都建议):
define('WP_HOME','https://example.com');
define('WP_SITEURL','https://example.com');
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
$_SERVER['HTTPS']='on';
但是,我的问题是,当我尝试访问我的站点时,初始访问并不安全,即HTTP连接,但是当我尝试导航到其他页面并返回我的站点时,该连接立即变为安全的HTTPS连接。我想知道如何解决此问题,以便在首次访问该站点时强制使用HTTPS。之前,由于尝试强制使用HTTPS,我也遇到了“重定向过多”错误,而Wordpress这样做使它有些棘手,因此,我尝试避免这种情况。任何帮助深表感谢。谢谢!
您可以将弹性beantalk扩展添加到您的环境中。通常,您会.ebextensions
在应用程序的根目录中包含一个文件夹,以包含每个扩展。(docs)
如果您假设要运行nginx作为代理服务器,请10-nginx.config
在extensions目录中添加一个名为的文件。
files:
"/etc/nginx/sites-available/elasticbeanstalk-nginx-docker-proxy.conf":
content: |
server {
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
但是,您还应该考虑在负载均衡器上使用HTTPS终止,并使应用程序在环境网络的端口80上运行。
文档在这里;https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-httpredirect.html