我目前正在为客户托管内容。我需要将客户的子域“promo.client1.com”指向我网站中的文件夹:“mysite.com/client1”,以便访问者看到我的客户的域名时访问内容(我不能使用重定向)。
我想知道我应该问我的客户该做什么。
我确信这可以通过指向我的IP的A记录来完成。这是正确的吗?怎么办呢?
答案 0 :(得分:0)
此答案不符合问题的最新编辑。我选择将其作为重定向可接受的参考
首先,不要为您的业务伙伴使用术语“客户”,因为这会使这个答案变得混乱。此答案中的客户端是用户,即请求内容的浏览器。
鉴于您需要呼叫另一台服务器(用户要求业务伙伴的服务器,但他必须要求您提供服务器),您的业务伙伴必须发出REDIRECT(永久或临时)或他必须通过他的服务器代理您的内容,并从那里代理用户。单独解密这样的问题是不可能的。
对于REDIRECT,可以在他的服务器配置中完成,也可以使用带有REDIRECT的HTML。
检查this question如何从HTML文件或使用服务器配置发出重定向。请务必查看有关每种方法的优缺点的评论。
答案 1 :(得分:0)
考虑到您无法操作重定向,您基本上有两种选择:代理或DNS。
使用代理,您的业务伙伴可以设置一个代理,将代理浏览器对您的服务器的请求。这个概念被称为reverse proxy,并且有很多关于如何实现它的文档。
另一个选项是设置一个DNS条目,将其域的条目指向服务器上的特定地址。
您可以为您的员工的条目分配一个独有的IP地址,然后让他将A记录添加到他的DNS表中的专用IP地址,例如绑定标准配置格式:
your-server.businessassociate.com IN A 1.1.1.1
说明1.1.1.1是您分配给服务器的专用地址,该地址将回复对业务伙伴的域条目的请求。您很可能会有一个虚拟服务器使用该配置进行应答。
另一个选项是要求您的业务伙伴在其DNS表中创建一个CNAME条目,该表通过名称引用您的服务器。对于已经有一个的服务器,您永远不应该有另一个A条目,因此CNAME就像一个“别名”,并且一旦您更改自己的DNS条目,就会反映原始服务器名称的IP地址的变化。像这样:
your-server.businessassociate.com IN CNAME your-server.your-domain.com
然后您必须在your-server.your-domain.com计算机上运行的Web服务器上设置虚拟服务器,以处理发送到your-server.businessassociate.com的请求。
你不能通过DNS做的就是你的问题所在:promo.cluent1.com永远不能翻译成mysite.com/client1,因为DNS无法处理HTTP的细节,就像在斜杠之后的那样。您可以通过在http服务器上设置一个虚拟主机来实现类似的结果,该虚拟主机在内部重写your-server.businessassociate.com到mysite.com/client1,但您无法摆脱设置虚拟主机或类似主机。