我如何在 Route 53 中将一个域重定向到另一个域?

上次更新时间:2021 年 5 月 27 日

我需要在 Amazon Route 53 中将客户端从一个域重定向到另一个域。我该如何操作?

简短描述

配置域重定向有以下三种常见场景:

1.    从一个域重定向到另一个域。例如:
        顶级域 (example.com) 到顶级域 (anydomain.com)
        顶级域 (example.com) 到子域 (www.anydomain.com),包括 www.example.com
        子域 (www.example.com) 到顶级域 (anydomain.com),包括 example.com
        子域 (www.example.com) 到子域 (www.anydomain.com),包括 anysubdomain.example.com
2.    将域从 HTTP 重定向到 HTTPS。例如:
        顶级域 (http://example.com) 到顶级域 (https://anydomain.com),包括 https://example.com
        顶级域 (http://example.com) 到子域 (https://www.anydomain.com),包括 https://www.example.com
        子域 (http://www.example.com) 到顶级域 (https://anydomain.com),包括 https://example.com
        子域 (http://www.example.com) 到子域 (https://www.anydomain.com),包括 https://anysubdomain.example.com
3.    重定向到其他 URI 路径(路径转发)。例如:
        example.com、example.com/<path>、www.example.com 或 www.example.com/<path> 到
        example.com/<newpath>、www.example.com/<newpath>、anydomain.com/<newpath> 或 anysubdomain.anydomain.com/<newpath>

解决方法

使用 CNAME 记录从一个域重定向到另一个域

在这种情况下,在 Route 53 托管区域中创建 CNAME 记录来配置 DNS 重定向。

要从非顶级域重定向到另一种域类型,请使用以下格式之一配置您的 CNAME 记录(根据您的用例而定):

  • www.example.com CNAME anysubdomain.example.com 或 www.anydomain.com
  • www.example.com CNAME example.com 或 anydomain.com

使用 Amazon S3 和 CloudFront 重定向到其他 URI 路径或从 HTTP 重定向到 HTTPS

这两种常见的重定向场景无法通过使用 CNAME 记录的简单 DNS 重定向来实现。在这些情况下,您必须在应用程序端配置重定向。您可以使用 Amazon CloudFront、Amazon Simple Storage Service (Amazon S3) 静态 Web 托管和 Route 53 重定向请求。
注意:Amazon S3 静态 Web 托管仅支持 HTTP 协议。您必须使用 CloudFront 分配才能执行从 HTTP 到 HTTPS 的重定向。

先决条件

要在这种情况下重定向域,您需要:

  • 在 Route 53 中托管的域 (example.com) 的托管区域
  • 将资源记录添加到域 (example.com) 的托管区域的权限
  • 创建 Amazon S3 存储桶的权限
  • 创建 CloudFront 分配的权限
  • 域名(example.com 和 www.example.com)的 AWS Certificate Manager (ACM) 证书

Amazon S3 配置

  1. 打开 Amazon S3 控制台
  2. 创建具有全局唯一名称的 S3 存储桶。
  3. 选择您刚刚创建的存储桶,然后选择 Properties (属性)
  4. 对于 Static website hosting (静态网站托管),选择 Edit (编辑)
  5. 对于 Hosting type (托管类型),选择 Redirect requests for an object (重定向对象请求)
  6. 输入 Host name (主机名)(新的重定向位置 domain.com 或 domain.com/xxx/xxx),然后选择新域的协议。
  7. 选择 Save (保存)
  8. 记下存储桶的终端节点 (example.com.s3-website-us-east-1.amazonaws.com)。在以下任务中,您将使用此信息为 CloudFront 配置源域名。

CloudFront 配置

  1. 打开 CloudFront 控制台。
  2. 选择 Create Distribution (创建分配)
  3. Web 下,选择 Get Started (开始使用)
  4. 对于 Origin Domain Name (源域名),输入您在上一任务中记录的 S3 存储桶的网站终端节点。
  5. 对于 Viewer Protocol Policy (查看器协议策略),选择 Redirect HTTP to HTTPS (将 HTTP 重定向到 HTTPS)
  6. 根据您的要求配置剩余的 CloudFront 设置。
  7. 如果您未将自定义域用于 CloudFront,则选择 Create Distribution (创建分配) 以完成此过程。
    如果您使用的是自定义域,请在创建分配之前完成以下附加步骤:
    对于 Alternate Domain Names (CNAMEs) (备用域名 [CNAME]),请输入您的自定义域 (example.com)。
    对于 SSL Certificate (SSL 证书),选择 Custom SSL Certificate (自定义 SSL 证书)。然后,选择要分配给分配的自定义 SSL 证书。
    注意:有关安装证书的更多信息,请参阅如何将我的 CloudFront 分配配置为使用 SSL/TLS 证书?
    选择 Create Distribution (创建分配)

Route 53 配置

  1. 打开 Route 53 控制台
  2. 选择托管区域 (example.com)。
  3. 为 example.com 创建资源记录:
    对于 Record Type (记录类型),选择 A - IPv4 address (A – IPv4 地址)
    对于 Alias (别名),选择 Yes (是)
    对于 Alias Target (别名目标),选择空值字段。从下拉列表中,选择您在上一个任务中创建的 CloudFront 分配的域名。
  4. 根据您的要求配置剩余的设置,然后选择 Create (创建)

使用 Application Load Balancer 将域名重定向或从 HTTP 重定向到 HTTPS

Application Load Balancer 服务支持域名的重定向以及从 HTTP 重定向到 HTTPS。如果您的域指向 Application Load Balancer,则最佳实践是使用 Application Load Balancer 而不是 Amazon S3 配置重定向。

如果您使用 Application Load Balancer 作为配置的一部分,则可以通过以下步骤,使用该服务将一个域重定向到另一个域。

配置 Application Load Balancer

  1. 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台
  2. 在导航窗格中,选择 Load Balancing(负载均衡)下的 Load Balancers(负载均衡器)。
  3. 选择您的负载均衡器,然后选择 Listeners(侦听器)。
  4. 为要使用的负载均衡器侦听器选择 View/edit rules(查看/编辑规则)。
  5. 选择添加规则图标(+ 号)。
  6. 选择 Insert Rule(插入规则)。
  7. 选择 Add condition (添加条件)
  8. conditions section (条件部分) (IF),选择 Add condition (添加条件)
  9. 选择 Host header (主机标头),然后输入主机名 (例如,example.com)。
  10. 如要保存,请选择复选标记图标。
  11. actions (操作) 部分 (THEN),选择 Add action (添加操作)
  12. 选择 Redirect to (重定向到)
  13. 根据使用案例的要求,指定协议和端口。
  14. Original host、path、query(原始主机、路径、查询)更改为 Custom host、path、query(自定义主机、路径、查询)。
  15. 对于 Host (主机),输入 example2.com
  16. 对于 Path and Query (路径和查询),请保留默认值(除非您的用例要求更改它们)。
  17. Response (响应) 设置为 HTTP 301 "Permanently moved"(HTTP 301“永久移动”)HTTP 302 "Found" (HTTP 302“已找到”)
  18. 如要保存,请选择复选标记图标。
    THEN 部分显示:
    重定向到 https://example2.com:443/#{path}?#{query}
    状态代码:HTTP_301
  19. 选择 Save (保存)

注意:如果两个域指向同一个 Application Load Balancer,请确保:

  • 两个域都有单独的证书
    –或者–
  • 使用主题替代名称 (SAN) 证书验证域

确认重定向是否按预期工作

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版的 AWS CLI

1.    在 AWS CLI 中,使用 curl 实用程序命令。

示例命令:

curl -IL https://swapnil.live.

示例输出:

curl -IL https://swapnil.live  --> Initial Link
HTTP/2 301
server: awselb/2.0
date: Sat, 15 May 2021 09:00:14 GMT
content-type: text/html
content-length: 134
location: https://www.example.com:443/  --> New redirected link 

HTTP/2 200  --> 200 OK Response from backend
content-encoding: gzip
accept-ranges: bytes
age: 155230
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Sat, 15 May 2021 09:00:14 GMT
etag: "3147526947"
expires: Sat, 22 May 2021 09:00:14 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECS (dcb/7EEF)
x-cache: HIT
content-length: 648

2.    在互联网浏览器中,输入要重定向到的域,然后确认该域是否已重定向到目标域。

3.    (可选)有关更多详细信息,请查看 HTTP Archive (HAR) 文件。HAR 文件是一种 JSON 文件,其中包含您的浏览器记录的最新网络活动。

捕获 HAR 文件

Google Chrome:

  1. 在浏览器的右上角,选择 Customize and control Google Chrome (自定义并控制 Google Chrome)
  2. 选择 More tools (更多工具)Developer tools (开发人员工具)
  3. 在开发工具在浏览器中打开的情况下,选择 Network (网络) 面板。
  4. 选择 Preserve log(保留日志)复选框。
  5. 选择 Clear (清除) 以清除当前所有的网络请求。
    注意:重新加载页面时,您可以在前几个请求中看到重定向发生的情况,具体取决于配置的重定向级别。
  6. 在 DevTools 中,打开任何网络请求上的上下文(右键单击)菜单。
  7. 选择 Save all as HAR with content (全部另存为 HAR [含内容]),然后保存文件。

Microsoft Edge (Chromium):

  1. 在浏览器中,选择 Settings and more (设置及更多)
  2. 选择 More tools (更多工具)Developer tools (开发人员工具)
  3. 在开发工具在浏览器中打开的情况下,选择 Network (网络) 面板。
  4. 选择保留日志复选框。
  5. 选择 Clear (清除) 以清除当前所有的网络请求。
    注意:重新加载页面时,您可以在前几个请求中看到重定向发生的情况,具体取决于配置的重定向级别。
  6. 在 DevTools 中,打开任何网络请求上的上下文(右键单击)菜单。
  7. 选择 Save all as HAR with content (全部另存为 HAR [含内容]),然后保存文件。

Mozilla Firefox:

  1. 在浏览器中,选择 Open menu (打开菜单)
  2. 选择 Web Developer (Web 开发人员)
  3. Web Developer (Web 开发人员)菜单中,选择 Network (网络)
    注意:在某些版本的 Firefox 中,Web Developer (Web 开发人员) 菜单位于 Tools (工具) 菜单中。
  4. Network Monitor (网络监视器) 上,选中 Persist Logs (保留日志) 复选框。
  5. 选择垃圾桶图标(清除)以清除当前所有的网络请求。
    注意:重新加载页面时,您可以在前几个请求中看到重定向发生的情况,具体取决于配置的重定向级别。
  6. Network Monitor (网络监视器) 中,(右键单击)打开请求列表中任何网络请求的上下文菜单。
  7. 选择 Save All As HAR(全部另存为 HAR),然后保存文件。

分析 HAR 文件

  1. 打开您首选的 HAR 分析器,比如 Google 的 HAR Analyzer。
  2. 上传刚创建的 HAR 文件。
  3. 清除 3XX 之外的所有 HTTP 代码的复选框。
  4. 选择列出的任何条目,了解有关重定向请求的详细信息。

这篇文章对您有帮助吗?


您是否需要账单或技术支持?