11

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

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

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

@一个target.ip.address
www CNAME 域名.com

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

@一个target.ip.address
www 一个 internal.redirector.ip.address

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

我要求的可以完成吗?

谢谢,你们摇滚。

-乔什

4

3 回答 3

17

不,您不能使用 DNS 执行此操作 - DNS 查询的结果不会改变 HTTP 层中发生的情况,因此最初输入的域名将始终是在Host:标头中发送到 Web 服务器的域名。

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

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

为了实现您想要的,您需要安排www.example.com与您的博客分开托管,然后让该站点执行 HTTP 重定向example.com(即不带www前缀)

于 2009-02-27T09:12:48.237 回答
3

我要求的可以完成吗?

不,不是使用 DNS。

您可以使用 dyndns.com webhop 之类的东西进行设置。基本上,您将 www.posterous.com 指向 dyndns 服务器,当浏览器连接时,它们会发送 HTTP 302 重定向到您想要的 url (posterous.com)。

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

于 2009-02-27T09:03:17.650 回答
1

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

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

于 2009-02-27T07:36:04.817 回答