DNS将域重定向到子域

时间:2012-03-27 20:08:22

标签: php .htaccess redirect dns

我正在寻找一种通过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

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

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

您必须在Web服务器端处理重定向。您只需要抛出一个HTTP 301 Permanently moved,让访问者知道新地址,如果您使用的是apache,则使用.htaccess文件,或者使用header()函数的简单PHP脚本。 / p>

答案 1 :(得分:2)

您可以在DNS中使用CNAME将另一个名称指向同一地址作为其他名称,从而更容易更改两者的IP。 I.E.如果您的邮件www和ftp都在同一个IP上,您可以设置一个并将其他两个指向第一个,这样如果IP更改只需要更改一个。

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

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

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

答案 2 :(得分:0)

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