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

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

评论

可能值得注意的是,没有插件就必须拥有专用IP,至少这是我的理解。

#1 楼

在这个话题上似乎总是有些困惑。也许WordPress可以在此过程中更好地指导用户。虽然,我认为Multi-site不是要用于TLD的。

因此,首先,我将安装WordPress,设置多站点,并将其配置为子域网络配置。 >
这是WordPress安装目录中wp-config.php文件的示例配置:

/* 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).*)  [L]
RewriteRule ^(.*\.php)$  [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网站放置实际域名的时候。 br />

评论


谢谢您的支持,它似乎可以正常工作-而且确实需要Cookie部分。对我来说,我1)注册了一个新域,2)将其名称服务器指向我现有的WordPress Multisite主机,3)在cPanel中,做了一个附加域,将文档根设置为与主站点相同的public_html(像您一样)说;我没有尝试使用新目录的默认方式,所以不确定是否可以使用),以及4)将子站点的网址从oldsubdomain.primarysite.com更改为newdomain.com。远。

–罗伯特·安德鲁斯
18-10-6在20:39

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

–黛比·库斯(Debbie Kurth)
19年6月26日在2:07

#2 楼

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

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

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

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

define( 'COOKIE_DOMAIN', '' );


#3 楼

WordPress现在对此有支持文章。本质上,建议的步骤由David&Michael概述:


将DNS中的域名映射到您的服务器
确保此域已在您的服务器上注册了虚拟主机指向WordPress目录
在服务器上生成并安装一个包含预期域的SSL证书(从技术上讲这是可选的,但限制用户使用HTTP并不是一个好主意,现在经常会因SEO分数不高而受到惩罚)
更新WordPress博客中的站点URL以指向新域。
如果cookie仍然存在问题,请在COOKIE_DOMAIN中定义wp-config.php

主要区别在于,他们建议不要将Cookie域留空(define( 'COOKIE_DOMAIN', '' );),而是建议填充HTTP请求所访问的域:

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);


这有助于避免在不同域名下进行多站点安装时出现cookie问题,尤其是对于子目录安装。