【问题标题】:DNS Redirect domain to subdomain [closed]DNS将域重定向到子域[关闭]
【发布时间】:2012-04-11 10:01:21
【问题描述】:

我正在寻找一种通过 DNS a / cname 记录将域重定向到其子域的方法。

这些示例是否可以完全在 DNS 中完成,我知道使用 .htaccess 和 PHP 可以轻松完成。

website.com => blog.website.com
website.com/hello => blog.website.com/hello
www.website.com => blog.website.com
www.website.com/hello => blog.website.com/hello

有什么想法吗?

【问题讨论】:

  • 您可以在 DNS 中使用 CNAME,但这不会更新浏览器中显示的地址。
  • 简短的回答是否定的,通过 htaccess 查看 mod-rewrite
  • 你会怎么做 www.website.com/hello => blog.website.com/hello via cname?
  • 大声笑,我不知道它的局限性,现在我明白了。
  • 上述示例中的第三行应该可以通过 CNAME 记录来实现。 (这样的 CNAME 记录也可能会处理第四个示例。)至于示例中的第一行,请参阅:serverfault.com/questions/613829/…

标签: php .htaccess redirect dns


【解决方案1】:

DNS 仅用于将域名与 IP 地址相关联。你不能对它进行重定向

您必须在 Web 服务器端处理重定向。你只需要抛出一个 HTTP 301 Permanently moved 来让你的访问者知道新地址,无论是使用 apache 时使用 .htaccess 文件,还是使用带有 header() 函数的简单 PHP 脚本。

【讨论】:

【解决方案2】:

DNS(至少是 A/CNAME 记录)只是告诉系统“这一系列字符对应的 IP 地址是 123.456.789.000”。其余的取决于该 IP 上的服务器。

【讨论】:

  • AFAICT,您对 A 记录是正确的,但对 CNAME 记录却不是。
【解决方案3】:

您可以在 DNS 中使用 CNAME 将另一个名称指向与不同名称相同的地址,从而更轻松地更改两者的 IP。 IE。如果您的邮件 www 和 ftp 都在同一个 IP 上,您可以设置一个并将另外两个指向第一个,这样如果 IP 更改,只需更改一个。

但是,这不是重定向。如果您在网页中使用其中一个或两个,则域名不会在您导航时更改。这必须通过其他方式来实现。基本上你需要按照上面提到的 301 Permanently Moved 或 302 Temporarily Moved 来做。这可以通过多种方式通过 Web 服务器或代码来实现。

如果您使用的是 Apache,请查看默认情况下通常启用的 mod_rewrite。如您所述,这可以进入您的配置或 .htaccess 。如果您使用的是其他 Web 服务器,请参阅其文档。

您可以通过代码发出 Location 标头来实现重定向。大多数语言都有可以帮助您完成此过程的库。

【讨论】:

    猜你喜欢
    • 2012-11-12
    • 2010-09-07
    • 2015-06-29
    • 2011-07-04
    • 2018-02-05
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2020-05-26
    相关资源
    最近更新 更多