【问题标题】:How to redirect non-www domain.com to www domain.com(WordPress blog) in AWS Route 53?如何在 AWS Route 53 中将非 www domain.com 重定向到 www domain.com(WordPress 博客)?
【发布时间】:2016-02-22 16:29:11
【问题描述】:

我的非 www domain.com 使用 GoDaddy,我的 WordPress 博客托管在 AWS EC2 中。我正在使用 Route 53 来处理 DNS 请求。在很多地方(包括 SOF)看到我的问题的现有解决方案是以非 www 域和 www 域的名称创建两个 S3 存储桶,用于重定向静态网站。这不是我的情况。

我的 WordPress 安装在 EC2 中,并且没有使用 S3 来保存我的数据。我希望这不是一个静态网站,不能遵循可用的一般解决方案。

我尝试了以下解决方案,但没有奏效

  • 我尝试将 C-NAME 记录更改为 www.domain.com,但没有成功。

  • 我尝试了 GoDaddy.com 提供的域转发功能,但没有成功。

  • 我尝试修改 .htaccess 文件,但也没有用。

这就是我在 Route 53 中的记录集的样子

Name          Type     Value                         TTL
------        -----    -----                         ----
domain.com.    A      xx.xx.xxx.xxx  (EIP)           300
domain.com.    MX     1 ASPMX.L.GOOGLE.COM           3600
                      5 ALT1.ASPMX.L.GOOGLE.COM 
                      5 ALT2.ASPMX.L.GOOGLE.COM 
                      10 ALT3.ASPMX.L.GOOGLE.COM 
                      10 ALT4.ASPMX.L.GOOGLE.COM    
domain.com.    NS     ns-27.awsdns-03.com.           172800
                      ns-1190.awsdns-20.org. 
                      ns-2028.awsdns-61.co.uk. 
                      ns-855.awsdns-42.net.     
domain.com.    SOA    xxxxxxxxx                      900

如何将我的 domain.com 重定向到 www.domain.com?

【问题讨论】:

  • 在 GoDaddy 中,您是否将名称服务器 (NS) 更改为 AWS Route 53 托管区域提供的四个?使用 www.whatsmydns.net 来解决 NS 正在解析您的域名的问题。另外,将您的 TTL 更改为 60 秒,这样更改会传播得更快。
  • 是的,我确实更改了 NS(如上所述)。 whatsmydns.net 指向正确的 EIP。
  • 感谢您的确认。当您修改 .htaccess 文件时,您是否也修改了 httpd.conf 文件?你能提供你的配置吗?
  • 这是我添加到我的 .htaccess 文件中的内容(删除它是因为添加此文件后加载站点失败 - 这对我的 AWS 配置是否正确) RewriteEngine on rewritecond %{http_host} ^ec2instances.info [nc] rewriterule ^(.*)$ ec2instances.info/$1 [r=301,nc] 我还没有修改我的 httpd.conf 文件。
  • 好的 - 实际上有很多重定向方法,但这是 AWS Route 53 的限制 - 我认为没有办法引导裸域。因此,您需要在您的 Web 服务器上进行重写,并且我假设您正在运行 Apache。由于我正在旅行,因此我现在无法让您完成这些步骤,但请查看此站点,该站点解释了不同的重定向方式 - 我认为方法 5 是您想要的:yolinux.com/TUTORIALS/ApacheRedirect.html#APACHE

标签: amazon-web-services amazon-ec2 url-rewriting url-redirection amazon-route53


【解决方案1】:

我不愿发表我的评论作为答案,因为似乎有无数种方法可以设置和配置 Wordpress。无论如何,为了保持将这个问题保留在 amazon-web-services 标记中的精神,我运行了一个从 AWS Wordpress Cloudformation 模板部署的测试用例。我不确定这是否是您实际安装 Wordpress 的方式,但这是 一种 重定向方式:

确保您的 Cloudformation 模板成功完成。

这是我的托管区域的样子 - 我还没有添加 A 记录。

获取实例 IP 地址。请注意,在此示例中,我没有设置弹性 IP。因为我知道我不需要暂时停止实例,所以我选择坚持使用自动分配的随机公共 IP。

接下来,我为该 IP 的域顶点创建了 A 记录,然后为 www 创建了 A 记录。我还将 TTL 更改为 60 秒。

DNS 传播完成后,我尝试访问我的域名。如您所见,AWS Cloudformation Wordpress 安装默认使用不同的路径和 URL。

使用 URL,http://example.com/wordpress 成功了。

我没有完成这些步骤,但是当您转到 http://example.com/wordpress 时,它会启动一个设置屏幕。输入数据库名称和密码等所有信息,然后登录管理面板。完成所有这些后,您将进入“常规设置”屏幕。这是您的配置可能会有所不同的地方,但对于我来说,这些 URL 被列为 http://example.com/wordpress。我只是将这些 URL 更改为 http://www.example.com/wordpress。 (顺便说一句,我还尝试更改并保存永久链接部分以生成一个 .htaccess 文件,但由于无法写入文件而没有生成一个文件。我尝试自己制作,但我一直遇到“太多重定向”消息,因此这可能不是您想要采取的路线,具体取决于您的安装。)

您需要对 index.php 文件进行更改。对于我的安装,它位于 /var/www/html/wordpress/index.php。确保在更改之前制作副本。我只是在 wp-blog-header.php 前面添加了 /wordpress/。同样,此安装将 Wordpress 文件放在目录 /wordpress 中 - 您的安装可能会有所不同。

接下来你需要将修改后的 index.php 文件复制到 /var/www/html/ 然后重启 httpd 服务。

为了测试更改,我清除了我的 DNS 缓存并在 Chrome 中打开了开发人员工具的网络部分。

然后我打开了一个新标签(必须再次打开开发者工具),然后输入裸域名。

如您所见,该 URL 使用 301 永久重定向重定向到 www.example.com。

我会在这里提出另一个建议。您可以使用免费版本的 Cloudflare 为您进行重定向。 Cloudflare 提供了许多其他免费且有用的服务,例如 CDN,因此如果您不介意依赖 3rd 方服务(顺便说一句,这是一个有信誉的服务),它可能会更容易增加附加值。但是,正如我在屏幕截图中强调的那样,请注意,如果您使用转发,则无法使用其他一些高级规则集。

无论如何,我希望这会有所帮助!

【讨论】:

  • 感谢@VirtualJJ 的详细回答。即使在 Route53 进行了所有更改后,它最初也没有工作。只有在WordPress url设置下更正了URLS后,该域才最终获得了www.domain。授予您此问题的答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
  • 2017-08-31
相关资源
最近更新 更多