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


19

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

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


Может быть стоит отметить, что для того, чтобы обойтись без плагина, вам понадобится выделенный 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', '' );
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.