使用 DNS 将子域重定向到特定 url

Posted

技术标签:

【中文标题】使用 DNS 将子域重定向到特定 url【英文标题】:Redirect a subdomain to a specific url using DNS 【发布时间】:2011-11-13 07:54:44 【问题描述】:

我已使用 301 重定向将我的域 http://domain1.com 重定向到 http://domain2.com。

现在我想在用户到达该 url 时将 subdomain.domain1.com 重定向到 domain2.com/folder。

我可以在 dns 中执行此操作吗?还是以其他方式?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

你不能用 DNS 做到这一点。 DNS 用于将域名映射到 IP 地址。它无法将域解析为特定的 URI。

【讨论】:

只是添加到这个正确答案的注释。一些 DNS 管理工具具有用于转发子域的工具,即使这不是纯粹的 DNS 事物。如果您的注册商有 DNS 管理工具,请务必检查,因为它可能内置了一些转发选项。 -1 这没有完全回答 OP 问题。好的,我们知道这是不可能的,但是哪里有可能呢? @zur4ik 很抱歉迟到了,但它说 DNS 不允许这样做,根据标准这是不可能的。任何可能的解决方案都将特定于注册商和/或底层服务器。 它回答“我可以在 dns 中执行此操作吗?”但不是“或者以其他方式?”【参考方案2】:

如果您使用 Apache 服务器,您可以使用 .htaccess 文件实现此目的。您可以尝试在文件中添加以下行,看看它是否有效。

RewriteEngine on
RewriteCond %HTTP_HOST ^(?:www\.)?subdomain.domain1\.com$
RewriteRule ^(.*)$ http://www.domain2.net/subfolder$1

(或)

RewriteEngine on
RewriteCond %HTTP_HOST ^subdomain\.domain1\.com$
RewriteRule ^(.*)$ www.domain2.net/subfolder$1  

【讨论】:

这个答案假设 Apache 服务器,例如网吧?【参考方案3】:

重写内部 DNS 可能会很痛苦,而我正是遇到了这个问题,所以我编写了一个系统来解决它。是的,它使用第三方服务器为您有效地进行重定向,但您只需要 2 个 DNS 条目就可以了。测试一下。 https://redir301.link/

使用需要添加 2 条 DNS 记录。一条作为指向此服务的指针,一条附加记录作为目标点。 DNS RFC 会阻止 CNAME 记录也具有关联的 TXT 记录,因此需要即兴发挥。

要使用,你需要设置subomain指向redir301.link。 (不要忘记最后的 DOT!)

 subdomain.foo.com      14400   IN  CNAME   redir301.link.

然后将关联的 TXT 记录设置为目标 URL。 TTL 应设置为 300(5 分钟)的最小值。

 301.subdomain.foo.com  14400   IN  TXT "<destination URL>"

目标网址可以是任意网址,但子子域必须是301,否则会失败。

【讨论】:

您创建的帐户已两次发布有关您创建的服务的信息,但没有其他贡献。请查看帮助中心:How to not be a spammer。您可以在这里谈论您的产品(并进行披露),但这不是您唯一的活动。

以上是关于使用 DNS 将子域重定向到特定 url的主要内容,如果未能解决你的问题,请参考以下文章

Cloudflare DNS - 如何将所有子域重定向到根域?

我可以使用 Cloudflare 将子域重定向到另一个 DNS 吗?

如何使用 Amazon Route 53 将子域重定向到特定页面?

使用 htaccess 将所有流量从根重定向到特定的子域页面

使用 URL 中的别名参数将旧子域重定向到新域

如何在Heroku上使用Zerigo DNS将根级域重定向到www子域? [关闭]