Как использовать Wordpress Multisite с разными доменными именами?

19

Я хочу работать с мультисайтом WordPress, но хочу использовать свои собственные имена. Например мой главный сайт называется example.com. Если я хочу добавить новый сайт в свою многосайтовую сеть, он будет называться newsite.example.com. Я хочу, чтобы это было newsite.comбез example. Есть ли способ добиться этого?

Я слышал о сопоставлении доменов с помощью плагина, но я не знаю, относится ли это к этому вопросу. Если это уместно, я хотел бы знать, что именно это.

Kevin.a
источник
Может быть стоит отметить, что для того, чтобы обойтись без плагина, вам понадобится выделенный IP, по крайней мере, это было мое понимание.
Нил Джонс

Ответы:

25

Кажется, всегда есть немного путаницы в этой теме. Возможно, WordPress лучше справится со своими пользователями в этом процессе. Хотя, я полагаю, Multi-site не предназначался для использования в TLD.

Итак, прежде всего, я бы установил WordPress , настроил мультисайт и настроил его как конфигурацию сети субдомена.

Вот пример конфигурации вашего 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 каждого домена разрешался на один и тот же веб-сервер, и чтобы каждый домен указывал на один и тот же каталог, основной домен которого установлен с WordPress. Каждый домен в вашей сети должен указывать на один и тот же веб-сервер с записями DNS и использовать один и тот же путь к каталогу для файлов, используемых WordPress.

После того, как вы все настроили и настроили правильно, как описано выше. Войдите в свою область администрирования WordPress и перейдите в область администрирования сети, чтобы добавить новый сайт в свою сеть.

Когда вы собираетесь добавить сайт, он будет принудительно добавлять сайт, как если бы он был субдоменом вашего основного домена. Просто катись с этим. Введите что-то временное.

Как только сайт будет добавлен, найдите его в списке сайтов в вашей сети. Нажмите изменить на этом конкретном сайте. Теперь вы можете полностью изменить доменное имя этого сайта на 100%. Тогда вы бы указали фактическое доменное имя для этого сайта TLD.

Я знаю, что это немного сложно, но это работает, и вам не нужно использовать какие-либо плагины.

Майкл Эклунд
источник
Спасибо за это, кажется, работает - и, похоже, нужна была часть cookie. Для меня я 1) зарегистрировал новый домен, 2) направил его серверы имен в сторону моего существующего хоста WordPress Multisite, 3) в cPanel создал домен дополнения, установив для корня документа тот же public_html, что и для основного сайта (как и у вас) сказал: я не пробовал это по умолчанию, новый каталог, поэтому не уверен, что это будет работать), и 4) изменил URL-адрес дочернего сайта с oldsubdomain.primarysite.com на newdomain.com Пальцы пересеклись, никаких проблем с DNS так далеко.
Роберт Эндрюс
Мне нравится этот ответ ... но у меня есть проблема. Ваше предложение изменить .htaccess, так как WordPress также дал такую ​​же модификацию. когда я делаю это изменение, система падает. Любые идеи о том, почему это будет?
Дебби Курт
4

Это возможно без какого-либо плагина с некоторых выпусков назад (не могу вспомнить конкретный выпуск, но функция была там некоторое время). Однако, если вы начинаете с нуля, вы должны установить многосайтовый WordPress в режиме поддоменов .

Вы должны объявить основной URL (вероятно kevin123.com) в качестве основного URL для сети (мультисайт). Это хранится в wp-config.phpв DOMAIN_CURRENT_SITEпостоянной и сайта (ранее известный как »блог«) , используя этот домен как домашний URL должен иметь идентификатор , хранящийся в BLOG_ID_CURRENT_SITE. Но это стандартная вещь во время стандартного процесса установки.

WordPress позволяет указывать поддомен только при создании нового сайта. Но после создания сайта вы можете отредактировать его и добавить совершенно произвольное значение для URL сайта. Я описал это некоторое время назад в этом ответе с некоторыми снимками экрана: возможна ли вложенная субдомена с мультидоменной субдомена?

Вам также может понадобиться установить константу COOKIE_DOMANпустым значением в вашем wp-config.php:

define( 'COOKIE_DOMAIN', '' );
Дэвид
источник