DNS大师:如何仅使用DNS将www.domain.com转发到domain.com?

时间:2009-02-27 07:10:44

标签: redirect dns cname

我在posterous.com上运行博客,如果我在域名注册商的自定义DNS工具中为他们的IP创建A记录,他们可以托管我的域名。

问题是我希望我的域名总是读取domain.com,所以我想让我的DNS重新映射到www.domain.com到domain.com的任何请求,我不能使用.htaccess或PHP或其他服务器方法,因为它只是一个博客界面。

到目前为止,我已经尝试过了:

@ A target.ip.address
www CNAME domain.com

将www.domain.com重定向到正确的网站,但www。仍然在域上。我听说你可以这样做:

@ A target.ip.address
www A internal.redirector.ip.address

但我不知道我的注册商的内部IP地址可能会处理此重定向(或者即使实际存在这样的事情)。

我可以要求做什么吗?

谢谢,你们摇滚。

-Josh

3 个答案:

答案 0 :(得分:17)

不,你不能用DNS做到这一点 - DNS查询的结果不会改变HTTP层中发生的事情,因此最初输入的域名将始终是发送到{的Web服务器的域名。 {1}}标题。

Web浏览器只查找DNS中的Host:条记录,它是用户ISP的递归名称服务器,它检测到该名称实际上只有A条记录,然后查找,并返回CNAME记录中与该名称对应的IP地址。

通常的C CNAME API不会向应用程序返回任何gethostbyname()信息,它所获得的只是最终生成的IP地址。

要实现您的目标,您需要安排CNAME从您的博客中单独托管,然后让该网站将HTTP重定向到www.example.com(即没有{{1} }}前缀)

答案 1 :(得分:3)

  

我可以要求做什么吗?

不,不是DNS。

您可以使用dyndns.com网站设置某些内容。基本上,您在dyndns服务器上指向www.posterous.com,当浏览器连接时,他们会将HTTP 302重定向发送到您想要的URL(posterous.com)。

http://www.dyndns.com/services/webredirect/

答案 2 :(得分:1)

我不确定你是否可以用DNS做到这一点,但我很肯定你可以在你的博客模板中用一些javascript技巧来执行它。即,在每个页面加载上运行的javascript片段可以检查当前页面的服务器,并且如果这与“www”匹配则重写该位置。字首。当然,当页面加载然后重新加载时会出现一些闪烁,搜索引擎也会忽略此重定向,因此您的内容可能会显示在搜索结果中的错误地址下,但至少用户会看到正确的预期地址

其他想法:如果您的DNS注册商另外提供免费的网络服务,请在那里进行重定向,添加重写规则以将请求路径转换为脚本参数,并为每个请求,生成一个iframe访问真实内容的简单页面。这又需要一些PHP编码,但它不应该太难。