Apache 如何使用amazon lightsail+;s3重定向&x2B;53号干线

Apache 如何使用amazon lightsail+;s3重定向&x2B;53号干线,apache,ssl-certificate,url-redirection,amazon-route53,amazon-lightsail,Apache,Ssl Certificate,Url Redirection,Amazon Route53,Amazon Lightsail,我用Amazon Lightsail创建了一个wordpress博客,并在route 53上购买了几个域名。我的主要域名是example.com,我还购买了: 例如:欧盟 例如:be 等等 我使用s3 bucket将所有可能的组合(包括非www和www)重定向到www.example.com(在我53号公路的托管区域中,是www.example.com重定向到我的lightsail静态IP) 我已经为www.example.com安装了一个Lets加密SSL证书 现在我想强制HTTPS,以便

我用Amazon Lightsail创建了一个wordpress博客,并在route 53上购买了几个域名。我的主要域名是example.com,我还购买了:

  • 例如:欧盟
  • 例如:be
  • 等等
我使用s3 bucket将所有可能的组合(包括非www和www)重定向到www.example.com(在我53号公路的托管区域中,是www.example.com重定向到我的lightsail静态IP)

我已经为www.example.com安装了一个Lets加密SSL证书

现在我想强制HTTPS,以便所有请求重定向到(usin 301 redirect),我可以使用s3存储桶执行此操作,但无法将www.example.com重定向到,因为它与我的静态IP地址关联


我应该怎么做才能只允许通过HTTPS访问我的博客?我在网上搜索了很长一段时间,发现一些教程说我应该使用cloudfront来处理重定向到HTTPS的问题,但它们从来没有真正适用于我的情况。

多亏了这一点,我终于找到了答案。我修改了httpd-app.conf文件以添加SSL重定向规则:

RewriteEngine On
RewriteBase /

#SSL redirection
RewriteCond %{HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Rewrite index.php
RewriteRule ^index\.php$ - [S=1]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

此规则允许使用我在服务器上安装的SSL证书(用于域www.example.com)将所有HTTP调用重定向到HTTPS。

这是在Lightsail计算机上配置web服务器以在请求尚未为HTTPS时生成重定向到HTTPS的简单事项。没有什么特别针对Lightsail的。谷歌在
堆栈溢出nginx重定向http到https的第一个成功例子是。如果您没有运行nginx,请将“nginx”更改为“Apache”。谢谢Michael,我已经通过此链接解决了我的问题:事实上,我是新手,我想我必须使用S3或Cloudfront来做一些特定于Lightsail的事情,但我真的很困惑。您认为使用S3 bucket从辅助域重定向到我的主域还是在服务器配置中重定向更好?这取决于几个因素。如果您的服务器正在提供
https://www.example.com
那么您就不能使用bucket重定向
http://www.example.com
因为给定主机名下的所有内容只能由一个实体处理(尽管该实体随后可能会将某些操作委托给下游,例如CloudFront)。对于一个主机名到另一个主机名的简单重定向,我喜欢CloudFront+S3配置,因为它很简单,无需维护,除非你做一些破坏它的事情,否则不太可能破坏它。Lightsail只是一个VPS,你可以用它做任何你可以在任何服务器、任何地方做的事情,除了有限的例外(如发送垃圾邮件,其中有适当的措施来阻止它)。它可以与其他AWS服务交互,如您希望的那样多或少,不需要使用任何其他AWS服务,但在您使用时经常有优势。请考虑编写和发布一个答案,用代码(CONFIG)解释您所做的事情。举例,解释它的作用,为什么它是解决方案,并给出您找到的原始文档的属性。需要记住的一点是,答案中需要有足够的信息,以便在非现场链接不可用的情况下,答案本身能够解决问题,但不需要过度复制/粘贴确保清楚哪些单词不是你自己的(当然,使用
作为块引号的前缀并引用源代码)。同时将你的web服务器添加到问题标签中。