首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何克服根域CNAME限制?

如何克服根域CNAME限制?
EN

Stack Overflow用户
提问于 2009-03-18 05:05:14
回答 6查看 140.3K关注 0票数 124

我们正在为我们的客户托管许多web应用程序。很明显,他们希望使用自己的域来引用这些应用程序,通常他们希望任何输入http://www.customer1.examplehttp://customer1.example的用户都能转到他们的web应用程序。

我们面临的情况是,我们需要在不久的将来灵活地更改IP地址。我们不想依赖客户在他们的域上进行A记录更改。所以我们认为使用CNAME记录是可行的,但是当我们发现CNAME记录不适用于根域时。

基本上:

代码语言:javascript
复制
customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work

我们希望能够更改customer1.mycompanydomain.exampleA记录的IP地址,我们的客户将遵循我们控制的记录。

在我们的DNS中,它将如下所示:

代码语言:javascript
复制
customer1.mycompanydomain.example IN A 192.0.2.1

有什么想法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-03-20 20:04:50

多亏了sipwiz和MrEvil。我们开发了一个PHP脚本,它将解析用户输入的网址,并将www粘贴到它的顶部。(例如,如果客户进入kiragiannis.com,则将重定向到www.kiragiannis.com)。因此,我们的客户将其根目录指向(例如,customer1.com指向我们的web重定向器所在的A记录),然后将www CNAME指向由我们管理的实际A记录。

下面的代码,如果你对未来的我们感兴趣。

代码语言:javascript
复制
<?php
$url = strtolower($_SERVER["HTTP_HOST"]);

if(strpos($url, "//") !== false) { // remove http://
  $url = substr($url, strpos($url, "//") + 2);
}

$urlPagePath = "";
if(strpos($url, "/") !== false) { // store post-domain page path to append later
  $urlPagePath = substr($url, strpos($url, "/"));
  $url = substr($url, 0, strpos($url,"/"));
}


$urlLast = substr($url, strrpos($url, "."));
$url = substr($url, 0, strrpos($url, "."));


if(strpos($url, ".") !== false) { // get rid of subdomain(s)
  $url = substr($url, strrpos($url, ".") + 1);
}


$url = "http://www." . $url . $urlLast . $urlPagePath;

header( "Location:{$url}");
?>
票数 -8
EN

Stack Overflow用户

发布于 2014-02-13 16:25:48

我不知道他们是如何逃脱惩罚的,也不知道他们的负面影响是什么,但我正在使用Hover.com托管我的一些域名,最近还在那里设置了我的域名的顶点。他们的DNS编辑工具一点都没有抱怨,我的域名通过分配的CNAME愉快地解决了。

以下是Dig为我展示的这个域(实际的域混淆为mydomain.com):

代码语言:javascript
复制
; <<>> DiG 9.8.3-P1 <<>> mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2056
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.com.          IN  A

;; ANSWER SECTION:
mydomain.com.       394 IN  CNAME   myapp.parseapp.com.
myapp.parseapp.com. 300 IN  CNAME   parseapp.com.
parseapp.com.       60  IN  A   54.243.93.102
票数 4
EN

Stack Overflow用户

发布于 2009-03-18 04:43:58

Sipwiz是正确的,唯一正确做到这一点的方法是HTTP和DNS混合方法。我的注册商是Tucow的转售商,他们提供根域转发作为免费的增值服务。

如果你的域名是blah.com,他们会问你想把域名转发到哪里,然后你输入www.blah.com。他们将A记录分配给他们的apache服务器,并自动添加blah.com作为DNS vhost。vhost会响应HTTP 302错误,将它们重定向到正确的URL。这是简单的脚本/设置,可以由低端处理,否则将是报废的硬件。

运行以下命令作为示例: curl -v eclecticengineers.com

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/656009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档