如何使用具有不同域名的Wordpress多站点?


19

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

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


可能值得一提的是,如果没有插件,则必须拥有专用IP,至少这是我的理解。
尼尔·琼斯

Answers:


25

在这个话题上似乎总是有些困惑。也许WordPress可以在此过程中更好地指导用户。虽然,我认为多站点并非旨在用于TLD。

因此,首先,我将安装WordPress设置multisite,并将其配置为子域网络配置。

这是wp-config.phpWordPress安装基本目录中文件的示例配置:

/* 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 );

然后,这是.htaccessWordPress安装基本目录中文件的基本配置(作为子域配置):

# 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管理区域,然后导航到“网络”管理区域,以将新站点添加到网络中。

当您添加网站时,它将强制您添加网站,就好像它是主域名下的子域名一样。随它滚动。输入临时内容。

添加网站后,请在网络中的网站列表下找到它。单击该特定站点上的编辑。现在,您可以完全100%更改该网站的域名。届时,您将为该TLD网站放置实际域名。

我知道以这种方式进行操作有些棘手,但是它可以正常工作,您不需要使用任何插件。


谢谢您的支持,它似乎可以正常工作-并且确实需要Cookie部分。对我来说,我1)注册了一个新域,2)将其名称服务器指向我现有的WordPress Multisite主机,3)在cPanel中,做了一个附加域,将文档根设置为与主站点相同的public_html(像您一样)说,我没有尝试它的默认方式,一个新的目录中,所以不知道是否会工作),以及4)改变从子网站的URL oldsubdomain.primarysite.comnewdomain.com 手指交叉,没有DNS问题,所以远。
罗伯特·安德鲁斯

我喜欢这个答案...但是我有一个问题。您对更改.htaccess的建议,因为wordpress也进行了相同的修改。当我进行此更改时,系统崩溃。为什么会有这样的想法?
黛比·库斯

4

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

您必须声明一个主URL(可能是kevin123.com)作为网络(多站点)的主URL。这是存储在wp-config.phpDOMAIN_CURRENT_SITE不断并使用该域名作为主URL必须存储在ID网站(原名»博客«) BLOG_ID_CURRENT_SITE。但这是标准安装过程中几乎所有的默认内容。

创建新站点,WordPress仅允许您指定子域。但是,在创建网站后,您可以对其进行编辑并为网站URL添加完全任意的值。我之前在这个答案中用一些屏幕快照描述了它:子域多站点是否可以嵌套子域?

您可能还需要COOKIE_DOMAN在您的中将常量设置为空值wp-config.php

define( 'COOKIE_DOMAIN', '' );
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.