下面是我配置的一个解决方案的示例,它将站点留在网络中,但建立了从任何注册域到网络的域映射。它使网络站点看起来是一个完全独立的站点,所有功能(登录等)都完好无损。
Goal:
映射客户端的注册域,包括
www.foosite.com
和
foosite.com
转到我们的多站点网络
mymultisite.com
- 并尽可能简化客户的操作(也就是说,不要在注册处乱动CNAME或A记录)。
Procedure:
使用Amazon Route 53作为DNS系统。
亚马逊AWS Route 53处理DNS,因此我们首先为客户端的注册域创建托管区域(foosite.com
) www CNAME记录指向www.mymultisite.com
在Amazon AWS中为(非www)客户端的foosite.com
和statically 将其映射到www.foosite.com
返回Route 53 hosted zone,为(非www)创建A记录foosite.com
并将其指定为别名,将其指向步骤2中创建的bucket。这确保了www.foosite.com
和foosite.com
最终将指向www.mymultisite.com
在多站点网络中,转到网络管理中的客户端站点,编辑站点URL,将其更改为www.foosite.com
在托管的托管帐户中mymultisite.com
指定一个名为foosite.com
并将其指向public\\u html(或安装了WP的任何地方)。这有效地在Apache配置中为传入的映射站点创建了一个虚拟主机记录。
(note: 如果多站点托管在静态IP地址,并且是该地址上的唯一站点,并且托管公司允许将传入域动态映射到站点的文档根目录。。。这样,您就不必使用加载项或驻留的域。如果不确定,请咨询您的托管公司)。
在您的wp-config.php
对于多站点,需要添加一行:define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\'] );
如果您对此设置有任何问题,请尝试define(\'COOKIE_DOMAIN\', \'\');
).
Result:
您已经为映射的域建立了完整的DNS解决方案。您所要做的就是告诉客户机更新其域的注册器,并将记录在您的托管区域(路由53)中的亚马逊名称服务器指定为其DNS。您的客户根本不需要处理CNAME或A记录-您正在处理完全的映射,路径53。此外,由于
magic 在AWS别名记录中,您的多站点甚至不需要位于静态IP地址上(尽管为了安全起见,我将其保留在一个IP地址上)。
如果使用另一个系统作为名称服务器(例如Enom或GoDaddy),则需要为其域设置一个指向的静态IP地址的A记录mymultisite.com
. 这是一个不错的答案,但如果您的静态IP地址发生变化,您就必须告诉您的客户去他们的注册中心更新A记录,这会带来风险。
我更喜欢53号公路的解决方案。我还按照this article. 现在它非常简单-只需告诉客户端这里是您的新名称服务器,以便在您的注册器上设置,WP端的一切工作都是完美的。无需在中维护静态IP地址A 记录
以下是foosite的托管区域的外观。com:
foosite.com A ALIAS <name of S3 bucket>
footsite.com NS ns1.vanityns.com; ns2.vanityns.com; ns3.vanityns.com; ns4.vanityns.com
foosite.com SOA ns1.vanityns.com hostmaster.vanityns.com x x x x
www.foosite.com CNAME www.mymultisite.com
在这里设置vanity nameserver太多了,无法进入;按照我链接的那篇文章中的说明进行操作。关于这一点还有一点:确保为vanity名称服务器本身的名称服务器条目指定vanity名称服务器列表
glue records 连接到可重用委派集中实际AWS分配的名称服务器的真实IP地址。
这可以归结为大约20个小时的研究/实验对我有什么效果。