Як використовувати Wordpress Multisite з різними доменними іменами?


19

Я хочу працювати з мультисайтом WordPress, але хочу використовувати власні імена. Наприклад, називається мій головний сайт example.com. Якщо я хочу додати новий веб-сайт у свою багатосайтову мережу, він буде називатися newsite.example.com. Я хочу, щоб це було newsite.comбез example. Чи є спосіб досягти цього?

Я чув про відображення домену за допомогою плагіна, але не знаю, чи це стосується цього питання. Якщо це актуально, я хотів би знати, що це саме.


Можливо, варто відзначити, що для цього без плагіна вам доведеться мати виділений IP-адрес, принаймні так, як я розумію.
Ніл Джонс

Відповіді:


26

Здається, на цю тему завжди є трохи сум'яття. Можливо, WordPress може зробити кращу роботу, керуючи своїми користувачами в цьому процесі. Хоча, я вважаю, що мультисайт не призначений для використання для 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.