example.com
。如果我想将新站点添加到我的多站点网络,则将其称为newsite.example.com
。我希望它是没有newsite.com
的example
。有没有办法做到这一点? 我听说过带插件的域映射,但是我不知道这是否与此问题有关。如果相关,我想知道这到底是什么。
#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问题,尤其是对于子目录安装。
评论
可能值得注意的是,没有插件就必须拥有专用IP,至少这是我的理解。