如何在不同域名下使用WordPress MultiSite?

时间:2017-01-03 作者:Kevin.a

我想使用WordPress multisite,但我希望能够使用自己的名字。例如,我的主站点被称为example.com. 如果我想在我的多站点网络中添加一个新站点,它将被称为newsite.example.com. 我希望是这样newsite.com 没有example. 有没有办法做到这一点?

我听说过使用插件进行域映射,但我不知道这是否与这个问题有关。如果相关的话,我想知道这到底是什么。

3 个回复
最合适的回答,由SO网友:Michael Ecklund 整理而成

在这个话题上似乎总是有点混乱。也许WordPress可以在这一过程中更好地指导it用户。尽管如此,我认为多站点并不打算用于TLD。

所以首先,我会install WordPress, setup multisite, 并将其配置为子域网络配置。

以下是您的wp-config.php WordPress安装的基本目录中的文件:

/* Multisite */
define( \'WP_ALLOW_MULTISITE\', true );
define( \'MULTISITE\', true );
define( \'SUBDOMAIN_INSTALL\', true );
define( \'DOMAIN_CURRENT_SITE\', \'www.primary-domain.com\' );
define( \'PATH_CURRENT_SITE\', \'/\' );
define( \'SITE_ID_CURRENT_SITE\', 1 );
define( \'BLOG_ID_CURRENT_SITE\', 1 );
然后,下面是您的.htaccess 文件作为子域配置,位于WordPress安装的基本目录中:

# BoF WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\\.php)$ $1 [L]
RewriteRule . index.php [L]

# EoF WordPress
现在为了让TLD正常工作,我必须对wp-config.php 文件如下:

define( \'COOKIE_DOMAIN\', \'\' );
define( \'ADMIN_COOKIE_PATH\', \'/\' );
define( \'COOKIEPATH\', \'/\' );
define( \'SITECOOKIEPATH\', \'/\' );
WordPress的特定配置就是这样。

就我个人而言,我希望网络中的主域有一个Apache虚拟主机,然后用别名域配置该虚拟主机。每个别名域都是网络中的其他站点之一。

不管您如何调整设置,您都需要将每个域的DNS解析到相同的web服务器,并且每个域都指向主域使用WordPress安装的相同目录。网络中的每个域都需要指向具有DNS记录的同一web服务器,并为WordPress使用的文件共享相同的目录路径。

一旦您按照上面的讨论正确地配置和设置了所有内容。登录WordPress管理区域并导航到网络管理区域,将新站点添加到网络中。

当你去添加网站时,它会强制你添加网站,就像它是主域下的子域一样。随它去吧。输入临时内容。

添加站点后,请在网络中的站点列表下查找它。单击该特定网站上的编辑。现在,您可以完全更改该网站的域名。此时,您将输入此TLD站点的实际域名。

我知道这样做有点诡计,但它是有效的,你不需要使用任何插件。

SO网友:rxmd

WordPress现在有support article 关于这个。David&;概述了建议的步骤;迈克尔:

将DNS中的域名映射到您的服务器上,确保该域在您的服务器上注册了指向WordPress目录的虚拟主机,在您的服务器上生成并安装一个包含所需域的SSL证书(从技术上讲,这是可选的,但限制用户使用HTTP不是一个好主意,现在经常会受到搜索引擎优化不良分数的惩罚)更新WordPress博客中的站点URL以指向新域如果Cookie问题仍然存在,请定义COOKIE_DOMAIN 在里面wp-config.php. 主要区别在于,与其让cookie域为空(define( \'COOKIE_DOMAIN\', \'\' );), 他们建议填写HTTP请求所在的域:

define(\'COOKIE_DOMAIN\', $_SERVER[\'HTTP_HOST\']);
这有助于避免不同域名下的多站点安装出现cookie问题,尤其是对于子目录安装。

SO网友:David

从以前的一些版本开始,没有任何插件是可能的(不记得具体的版本了,但该功能已经存在了一段时间)。但是,如果您从头开始,应该在子域模式下安装WordPress multisite。

您必须声明一个主URL(可能是kevin123.com) 作为网络的主URL(多站点)。这存储在wp-config.phpDOMAIN_CURRENT_SITE 常量和使用此域作为主URL的站点(以前称为»blog«)的ID必须存储在BLOG_ID_CURRENT_SITE. 但这几乎是标准安装过程中的默认内容。

WordPress只允许您在创建新站点时指定子域。但在创建网站后,您可以对其进行编辑,并为网站URL添加完全任意的值。不久前,我在回答中用一些屏幕截图描述了这一点:Are nested subdomains possible with a subdomain multisite?

您可能还需要设置常量COOKIE_DOMANwp-config.php:

define( \'COOKIE_DOMAIN\', \'\' );

相关推荐

使用WordPress MultiSite(WPMS),每个创建的站点都有一个远程数据库

所以,我很想找到一种方法,为每个新添加的子站点使用具有不同远程数据库的WPM。我所知道的。我知道远程数据库可以位于其自己的服务器上,以允许远程站点连接使用DB用户的附加权限,并以%通配符的形式将IP绑定到DB或IP地址(如果您的服务器是网络的一部分)。请参见:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql或对我来说