首页 > 解决方案 > Apache 将 example.com 重定向到 ec2 公共 DNS

问题描述

设置

Route 53 域example.comA记录到id.cloudfront.netAAAA记录到random-id.cloudfront.net

Cloudfront 的源域为 EC2 公共 DNS ec.xxxxxx.amazonaws.com,备用域为example.com. 此外,它还有一个用于 SSL/TLS 的 AWS 证书(目前它同时接受 HTTP 和 HTTPS 请求)

EC2 是一个 Ubuntu-20.04 AMI,带有apache2php7.4phpmyadmin全部使用apt-get.

问题是每当我把example.com/*网站自动重定向到ec.xxxxxx.amazonaws.com/*.

例子:

这些是我尝试过的事情。

是 Cloudfront 还是 Apache 问题?这是我第一次使用 AWS 和 Apache,并试图了解它是如何工作的。

似乎超出范围的解决方案:

如果需要,我可以提供更多信息。

更新:

标签: apacheamazon-ec2

解决方案


将问题追溯到HTTP_HOST服务器接收到的 ec2 公共 DNS。因此,如果我访问了example.com/index.php并且代码应该重定向到example.com/index2.php它,则会重定向到ec.xxxxxx.amazonaws.com/index2.php因为HTTP_HOST = ec.xxxxxx.amazonaws.com.

通过将 CloudFront Distribution 的行为更新为转发Host值来修复。

所以,如果我访问example.com主机值将是example.com

如果我访问id.cloudfront.net,那么主机值将是id.cloudfront.net.

在此处输入图像描述

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23


推荐阅读