使用 aws elastic beanstalk 将非 www 重定向到 www

sin*_*nus 5 nginx amazon-ec2 express amazon-route53 amazon-elastic-beanstalk

我正在使用 Elastic Beanstalk,并按照说明使用 Express Web 服务器部署我的应用程序,如下所示: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html

此设置使用 nginx 和路由 53。

一切正常,但现在我尝试从非 www/非 https URL 重定向到“ https://www.domain.com ”(始终带有 www 的 https )。

我见过不同的解决方案,要么不起作用,要么看起来很糟糕。从 中执行此操作的正确方法是什么aws console

多谢!

pdo*_*naj 7

有一个简单的方法可以做到这一点。

  1. 转到您的负载均衡器
  2. 选择您的LB
  3. 单击“侦听器”选项卡
  4. 单击“规则”->“查看/编辑规则”
  5. 添加另一条规则
  • 条件 -> 主机标头:yoursite.com
  • 添加操作 -> 重定向到:
  • HTTPS -> #{端口}
  • 自定义主机、路径、查询
  • 主机:www.yoursite.com
  • 保留一切原样和 301 标头
  1. 保存即可开始!

所有内容都会被重定向到您的 WWW url。

这里有更多解释:https://channaly.medium.com/how-to-redirect-www-to-non-www-and-http-to-https-in-amazon-elasticbeanstalk-using-route53-and-alb- 1098d54903c8


Gus*_*taf 0

您可以设置一个将裸域重定向到 www 的 S3 存储桶。这里解释一下。

http://docs.aws.amazon.com/AmazonS3/latest/dev/website-hosting-custom-domain-walkthrough.html

您可以使用 Cloudfront 将 http 重定向到 https。您可以在这里阅读更多信息。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html

您也可以在 EC2 实例上设置 Web 服务器进行重定向,但这也要求您设置 SSL 证书。让 AWS 使用 Cloudfront 来处理这个问题会更容易。

您可能正在使用 Apache,所以它会是这样的。

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName mysite.example.com
   DocumentRoot /usr/local/apache2/htdocs 
   Redirect permanent / https://mysite.example.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName mysite.example.com
   DocumentRoot /app/directory/
   SSLEngine On
   # etc...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

然后在部署脚本中使用 LetsEncrypt 设置 SSL 证书。